(0) Obligation:

JBC Problem based on JBC Program:
No human-readable program information known.

Manifest-Version: 1.0 Created-By: 1.6.0_16 (Sun Microsystems Inc.) Main-Class: DuplicateNodes

(1) JBC2FIG (SOUND transformation)

Constructed FIGraph.

(2) Obligation:

FIGraph based on JBC Program:
Graph of 954 nodes with 2 SCCs.

(3) FIGtoITRSProof (SOUND transformation)

Transformed FIGraph to ITRS rules

(4) Complex Obligation (AND)

(5) Obligation:

ITRS problem:

The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean

The TRS R consists of the following rules:
Load23197(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41002, o41003, o41004))) → Load23197ARR1(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41002, o41003, o41004)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959)))
Load23197ARR1(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(java.lang.Object(Tree(o41002, o41003, NULL)), o41003, o41004)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959))) → Cond_Load23197ARR1(i6214 >= 0 && i6214 <= 42 && i6073 > 0 && i6073 < i3 && i6073 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(java.lang.Object(Tree(o41002, o41003, NULL)), o41003, o41004)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959)))
Cond_Load23197ARR1(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(java.lang.Object(Tree(o41002, o41003, NULL)), o41003, o41004)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959))) → Load23197(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1, o41003)
Load23197(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41008, o41009, o41010))) → Load23197ARR2(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41008, o41009, o41010)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959)))
Load23197ARR2(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41008, java.lang.Object(Tree(o41008, o41009, NULL)), o41010)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959))) → Cond_Load23197ARR2(i6214 > 42 && i6073 > 0 && i6073 < i3 && i6073 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41008, java.lang.Object(Tree(o41008, o41009, NULL)), o41010)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959)))
Cond_Load23197ARR2(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41008, java.lang.Object(Tree(o41008, o41009, NULL)), o41010)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959))) → Load23197(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1, o41008)
The set Q consists of the following terms:
Load23197(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, x4, x5)))
Load23197ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4, NULL)), x4, x5)), java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load23197ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4, NULL)), x4, x5)), java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Load23197ARR2(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, java.lang.Object(Tree(x3, x4, NULL)), x5)), java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load23197ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, java.lang.Object(Tree(x3, x4, NULL)), x5)), java.lang.Object(java.lang.String(x6, x7, x8, x9)))

(6) ITRStoIDPProof (EQUIVALENT transformation)

Added dependency pairs

(7) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


The ITRS R consists of the following rules:
Load23197(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41002, o41003, o41004))) → Load23197ARR1(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41002, o41003, o41004)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959)))
Load23197ARR1(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(java.lang.Object(Tree(o41002, o41003, NULL)), o41003, o41004)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959))) → Cond_Load23197ARR1(i6214 >= 0 && i6214 <= 42 && i6073 > 0 && i6073 < i3 && i6073 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(java.lang.Object(Tree(o41002, o41003, NULL)), o41003, o41004)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959)))
Cond_Load23197ARR1(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(java.lang.Object(Tree(o41002, o41003, NULL)), o41003, o41004)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959))) → Load23197(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1, o41003)
Load23197(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41008, o41009, o41010))) → Load23197ARR2(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41008, o41009, o41010)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959)))
Load23197ARR2(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41008, java.lang.Object(Tree(o41008, o41009, NULL)), o41010)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959))) → Cond_Load23197ARR2(i6214 > 42 && i6073 > 0 && i6073 < i3 && i6073 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41008, java.lang.Object(Tree(o41008, o41009, NULL)), o41010)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959)))
Cond_Load23197ARR2(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41008, java.lang.Object(Tree(o41008, o41009, NULL)), o41010)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959))) → Load23197(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1, o41008)

The integer pair graph contains the following rules and edges:
(0): LOAD23197(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], java.lang.Object(Tree(o41002[0], o41003[0], o41004[0]))) → LOAD23197ARR1(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])), java.lang.Object(java.lang.String(i6214[0], i6213[0], i6215[0], a43959[0])))
(1): LOAD23197ARR1(java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1]))) → COND_LOAD23197ARR1(i6214[1] >= 0 && i6214[1] <= 42 && i6073[1] > 0 && i6073[1] < i3[1] && i6073[1] + 1 > 0, java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])))
(2): COND_LOAD23197ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2], java.lang.Object(Tree(java.lang.Object(Tree(o41002[2], o41003[2], NULL)), o41003[2], o41004[2])), java.lang.Object(java.lang.String(i6214[2], i6213[2], i6215[2], a43959[2]))) → LOAD23197(java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2] + 1, o41003[2])
(3): LOAD23197(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], java.lang.Object(Tree(o41008[3], o41009[3], o41010[3]))) → LOAD23197ARR2(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], java.lang.Object(Tree(o41008[3], o41009[3], o41010[3])), java.lang.Object(java.lang.String(i6214[3], i6213[3], i6215[3], a43959[3])))
(4): LOAD23197ARR2(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4]))) → COND_LOAD23197ARR2(i6214[4] > 42 && i6073[4] > 0 && i6073[4] < i3[4] && i6073[4] + 1 > 0, java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])))
(5): COND_LOAD23197ARR2(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], java.lang.Object(Tree(o41008[5], java.lang.Object(Tree(o41008[5], o41009[5], NULL)), o41010[5])), java.lang.Object(java.lang.String(i6214[5], i6213[5], i6215[5], a43959[5]))) → LOAD23197(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5] + 1, o41008[5])

(0) -> (1), if ((java.lang.Object(ARRAY(i3[0], a43225data[0])) →* java.lang.Object(ARRAY(i3[1], a43225data[1])))∧(java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])))∧(java.lang.Object(java.lang.String(i6214[0], i6213[0], i6215[0], a43959[0])) →* java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])))∧(i6073[0]* i6073[1]))


(1) -> (2), if ((java.lang.Object(ARRAY(i3[1], a43225data[1])) →* java.lang.Object(ARRAY(i3[2], a43225data[2])))∧(i6073[1]* i6073[2])∧(i6214[1] >= 0 && i6214[1] <= 42 && i6073[1] > 0 && i6073[1] < i3[1] && i6073[1] + 1 > 0* TRUE)∧(java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41002[2], o41003[2], NULL)), o41003[2], o41004[2])))∧(java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])) →* java.lang.Object(java.lang.String(i6214[2], i6213[2], i6215[2], a43959[2]))))


(2) -> (0), if ((i6073[2] + 1* i6073[0])∧(o41003[2]* java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])))∧(java.lang.Object(ARRAY(i3[2], a43225data[2])) →* java.lang.Object(ARRAY(i3[0], a43225data[0]))))


(2) -> (3), if ((o41003[2]* java.lang.Object(Tree(o41008[3], o41009[3], o41010[3])))∧(java.lang.Object(ARRAY(i3[2], a43225data[2])) →* java.lang.Object(ARRAY(i3[3], a43225data[3])))∧(i6073[2] + 1* i6073[3]))


(3) -> (4), if ((java.lang.Object(ARRAY(i3[3], a43225data[3])) →* java.lang.Object(ARRAY(i3[4], a43225data[4])))∧(java.lang.Object(java.lang.String(i6214[3], i6213[3], i6215[3], a43959[3])) →* java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])))∧(i6073[3]* i6073[4])∧(java.lang.Object(Tree(o41008[3], o41009[3], o41010[3])) →* java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4]))))


(4) -> (5), if ((java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])) →* java.lang.Object(java.lang.String(i6214[5], i6213[5], i6215[5], a43959[5])))∧(java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])) →* java.lang.Object(Tree(o41008[5], java.lang.Object(Tree(o41008[5], o41009[5], NULL)), o41010[5])))∧(i6073[4]* i6073[5])∧(i6214[4] > 42 && i6073[4] > 0 && i6073[4] < i3[4] && i6073[4] + 1 > 0* TRUE)∧(java.lang.Object(ARRAY(i3[4], a43225data[4])) →* java.lang.Object(ARRAY(i3[5], a43225data[5]))))


(5) -> (0), if ((o41008[5]* java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])))∧(java.lang.Object(ARRAY(i3[5], a43225data[5])) →* java.lang.Object(ARRAY(i3[0], a43225data[0])))∧(i6073[5] + 1* i6073[0]))


(5) -> (3), if ((i6073[5] + 1* i6073[3])∧(java.lang.Object(ARRAY(i3[5], a43225data[5])) →* java.lang.Object(ARRAY(i3[3], a43225data[3])))∧(o41008[5]* java.lang.Object(Tree(o41008[3], o41009[3], o41010[3]))))



The set Q consists of the following terms:
Load23197(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, x4, x5)))
Load23197ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4, NULL)), x4, x5)), java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load23197ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4, NULL)), x4, x5)), java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Load23197ARR2(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, java.lang.Object(Tree(x3, x4, NULL)), x5)), java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load23197ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, java.lang.Object(Tree(x3, x4, NULL)), x5)), java.lang.Object(java.lang.String(x6, x7, x8, x9)))

(8) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(9) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD23197(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], java.lang.Object(Tree(o41002[0], o41003[0], o41004[0]))) → LOAD23197ARR1(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])), java.lang.Object(java.lang.String(i6214[0], i6213[0], i6215[0], a43959[0])))
(1): LOAD23197ARR1(java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1]))) → COND_LOAD23197ARR1(i6214[1] >= 0 && i6214[1] <= 42 && i6073[1] > 0 && i6073[1] < i3[1] && i6073[1] + 1 > 0, java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])))
(2): COND_LOAD23197ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2], java.lang.Object(Tree(java.lang.Object(Tree(o41002[2], o41003[2], NULL)), o41003[2], o41004[2])), java.lang.Object(java.lang.String(i6214[2], i6213[2], i6215[2], a43959[2]))) → LOAD23197(java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2] + 1, o41003[2])
(3): LOAD23197(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], java.lang.Object(Tree(o41008[3], o41009[3], o41010[3]))) → LOAD23197ARR2(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], java.lang.Object(Tree(o41008[3], o41009[3], o41010[3])), java.lang.Object(java.lang.String(i6214[3], i6213[3], i6215[3], a43959[3])))
(4): LOAD23197ARR2(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4]))) → COND_LOAD23197ARR2(i6214[4] > 42 && i6073[4] > 0 && i6073[4] < i3[4] && i6073[4] + 1 > 0, java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])))
(5): COND_LOAD23197ARR2(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], java.lang.Object(Tree(o41008[5], java.lang.Object(Tree(o41008[5], o41009[5], NULL)), o41010[5])), java.lang.Object(java.lang.String(i6214[5], i6213[5], i6215[5], a43959[5]))) → LOAD23197(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5] + 1, o41008[5])

(0) -> (1), if ((java.lang.Object(ARRAY(i3[0], a43225data[0])) →* java.lang.Object(ARRAY(i3[1], a43225data[1])))∧(java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])))∧(java.lang.Object(java.lang.String(i6214[0], i6213[0], i6215[0], a43959[0])) →* java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])))∧(i6073[0]* i6073[1]))


(1) -> (2), if ((java.lang.Object(ARRAY(i3[1], a43225data[1])) →* java.lang.Object(ARRAY(i3[2], a43225data[2])))∧(i6073[1]* i6073[2])∧(i6214[1] >= 0 && i6214[1] <= 42 && i6073[1] > 0 && i6073[1] < i3[1] && i6073[1] + 1 > 0* TRUE)∧(java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41002[2], o41003[2], NULL)), o41003[2], o41004[2])))∧(java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])) →* java.lang.Object(java.lang.String(i6214[2], i6213[2], i6215[2], a43959[2]))))


(2) -> (0), if ((i6073[2] + 1* i6073[0])∧(o41003[2]* java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])))∧(java.lang.Object(ARRAY(i3[2], a43225data[2])) →* java.lang.Object(ARRAY(i3[0], a43225data[0]))))


(2) -> (3), if ((o41003[2]* java.lang.Object(Tree(o41008[3], o41009[3], o41010[3])))∧(java.lang.Object(ARRAY(i3[2], a43225data[2])) →* java.lang.Object(ARRAY(i3[3], a43225data[3])))∧(i6073[2] + 1* i6073[3]))


(3) -> (4), if ((java.lang.Object(ARRAY(i3[3], a43225data[3])) →* java.lang.Object(ARRAY(i3[4], a43225data[4])))∧(java.lang.Object(java.lang.String(i6214[3], i6213[3], i6215[3], a43959[3])) →* java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])))∧(i6073[3]* i6073[4])∧(java.lang.Object(Tree(o41008[3], o41009[3], o41010[3])) →* java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4]))))


(4) -> (5), if ((java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])) →* java.lang.Object(java.lang.String(i6214[5], i6213[5], i6215[5], a43959[5])))∧(java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])) →* java.lang.Object(Tree(o41008[5], java.lang.Object(Tree(o41008[5], o41009[5], NULL)), o41010[5])))∧(i6073[4]* i6073[5])∧(i6214[4] > 42 && i6073[4] > 0 && i6073[4] < i3[4] && i6073[4] + 1 > 0* TRUE)∧(java.lang.Object(ARRAY(i3[4], a43225data[4])) →* java.lang.Object(ARRAY(i3[5], a43225data[5]))))


(5) -> (0), if ((o41008[5]* java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])))∧(java.lang.Object(ARRAY(i3[5], a43225data[5])) →* java.lang.Object(ARRAY(i3[0], a43225data[0])))∧(i6073[5] + 1* i6073[0]))


(5) -> (3), if ((i6073[5] + 1* i6073[3])∧(java.lang.Object(ARRAY(i3[5], a43225data[5])) →* java.lang.Object(ARRAY(i3[3], a43225data[3])))∧(o41008[5]* java.lang.Object(Tree(o41008[3], o41009[3], o41010[3]))))



The set Q consists of the following terms:
Load23197(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, x4, x5)))
Load23197ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4, NULL)), x4, x5)), java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load23197ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4, NULL)), x4, x5)), java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Load23197ARR2(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, java.lang.Object(Tree(x3, x4, NULL)), x5)), java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load23197ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, java.lang.Object(Tree(x3, x4, NULL)), x5)), java.lang.Object(java.lang.String(x6, x7, x8, x9)))

(10) ItpfGraphProof (EQUIVALENT transformation)

Applied rule ItpfICap [ICap]

(11) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD23197(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], java.lang.Object(Tree(o41002[0], o41003[0], o41004[0]))) → LOAD23197ARR1(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])), java.lang.Object(java.lang.String(i6214[0], i6213[0], i6215[0], a43959[0])))
(1): LOAD23197ARR1(java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1]))) → COND_LOAD23197ARR1(i6214[1] >= 0 && i6214[1] <= 42 && i6073[1] > 0 && i6073[1] < i3[1] && i6073[1] + 1 > 0, java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])))
(2): COND_LOAD23197ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2], java.lang.Object(Tree(java.lang.Object(Tree(o41002[2], o41003[2], NULL)), o41003[2], o41004[2])), java.lang.Object(java.lang.String(i6214[2], i6213[2], i6215[2], a43959[2]))) → LOAD23197(java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2] + 1, o41003[2])
(3): LOAD23197(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], java.lang.Object(Tree(o41008[3], o41009[3], o41010[3]))) → LOAD23197ARR2(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], java.lang.Object(Tree(o41008[3], o41009[3], o41010[3])), java.lang.Object(java.lang.String(i6214[3], i6213[3], i6215[3], a43959[3])))
(4): LOAD23197ARR2(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4]))) → COND_LOAD23197ARR2(i6214[4] > 42 && i6073[4] > 0 && i6073[4] < i3[4] && i6073[4] + 1 > 0, java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])))
(5): COND_LOAD23197ARR2(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], java.lang.Object(Tree(o41008[5], java.lang.Object(Tree(o41008[5], o41009[5], NULL)), o41010[5])), java.lang.Object(java.lang.String(i6214[5], i6213[5], i6215[5], a43959[5]))) → LOAD23197(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5] + 1, o41008[5])

(0) -> (1), if (((i3[0]* i3[1])∧(a43225data[0]* a43225data[1]))∧((o41002[0]* java.lang.Object(Tree(o41002[1], o41003[1], NULL)))∧(o41003[0]* o41003[1])∧(o41004[0]* o41004[1]))∧((i6214[0]* i6214[1])∧(i6213[0]* i6213[1])∧(i6215[0]* i6215[1])∧(a43959[0]* a43959[1]))∧(i6073[0]* i6073[1]))


(1) -> (2), if (((i3[1]* i3[2])∧(a43225data[1]* a43225data[2]))∧(i6073[1]* i6073[2])∧(i6214[1] >= 0 && i6214[1] <= 42 && i6073[1] > 0 && i6073[1] < i3[1] && i6073[1] + 1 > 0* TRUE)∧((o41002[1]* o41002[2])∧(o41003[1]* o41003[2])∧(o41004[1]* o41004[2]))∧((i6214[1]* i6214[2])∧(i6213[1]* i6213[2])∧(i6215[1]* i6215[2])∧(a43959[1]* a43959[2])))


(2) -> (0), if ((i6073[2] + 1* i6073[0])∧(o41003[2]* java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])))∧((i3[2]* i3[0])∧(a43225data[2]* a43225data[0])))


(2) -> (3), if ((o41003[2]* java.lang.Object(Tree(o41008[3], o41009[3], o41010[3])))∧((i3[2]* i3[3])∧(a43225data[2]* a43225data[3]))∧(i6073[2] + 1* i6073[3]))


(3) -> (4), if (((i3[3]* i3[4])∧(a43225data[3]* a43225data[4]))∧((i6214[3]* i6214[4])∧(i6213[3]* i6213[4])∧(i6215[3]* i6215[4])∧(a43959[3]* a43959[4]))∧(i6073[3]* i6073[4])∧((o41008[3]* o41008[4])∧(o41009[3]* java.lang.Object(Tree(o41008[4], o41009[4], NULL)))∧(o41010[3]* o41010[4])))


(4) -> (5), if (((i6214[4]* i6214[5])∧(i6213[4]* i6213[5])∧(i6215[4]* i6215[5])∧(a43959[4]* a43959[5]))∧((o41008[4]* o41008[5])∧(o41009[4]* o41009[5])∧(o41010[4]* o41010[5]))∧(i6073[4]* i6073[5])∧(i6214[4] > 42 && i6073[4] > 0 && i6073[4] < i3[4] && i6073[4] + 1 > 0* TRUE)∧((i3[4]* i3[5])∧(a43225data[4]* a43225data[5])))


(5) -> (0), if ((o41008[5]* java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])))∧((i3[5]* i3[0])∧(a43225data[5]* a43225data[0]))∧(i6073[5] + 1* i6073[0]))


(5) -> (3), if ((i6073[5] + 1* i6073[3])∧((i3[5]* i3[3])∧(a43225data[5]* a43225data[3]))∧(o41008[5]* java.lang.Object(Tree(o41008[3], o41009[3], o41010[3]))))



The set Q consists of the following terms:
Load23197(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, x4, x5)))
Load23197ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4, NULL)), x4, x5)), java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load23197ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4, NULL)), x4, x5)), java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Load23197ARR2(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, java.lang.Object(Tree(x3, x4, NULL)), x5)), java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load23197ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, java.lang.Object(Tree(x3, x4, NULL)), x5)), java.lang.Object(java.lang.String(x6, x7, x8, x9)))

(12) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair LOAD23197(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41002, o41003, o41004))) → LOAD23197ARR1(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41002, o41003, o41004)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959))) the following chains were created:
  • We consider the chain LOAD23197(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], java.lang.Object(Tree(o41002[0], o41003[0], o41004[0]))) → LOAD23197ARR1(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])), java.lang.Object(java.lang.String(i6214[0], i6213[0], i6215[0], a43959[0]))) which results in the following constraint:

    (1)    (LOAD23197(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])))≥NonInfC∧LOAD23197(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])))≥LOAD23197ARR1(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])), java.lang.Object(java.lang.String(i6214[0], i6213[0], i6215[0], a43959[0])))∧(UIncreasing(LOAD23197ARR1(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])), java.lang.Object(java.lang.String(i6214[0], i6213[0], i6215[0], a43959[0])))), ≥))



    We simplified constraint (1) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (2)    ((UIncreasing(LOAD23197ARR1(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])), java.lang.Object(java.lang.String(i6214[0], i6213[0], i6215[0], a43959[0])))), ≥)∧[1 + (-1)bso_28] ≥ 0)



    We simplified constraint (2) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (3)    ((UIncreasing(LOAD23197ARR1(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])), java.lang.Object(java.lang.String(i6214[0], i6213[0], i6215[0], a43959[0])))), ≥)∧[1 + (-1)bso_28] ≥ 0)



    We simplified constraint (3) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (4)    ((UIncreasing(LOAD23197ARR1(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])), java.lang.Object(java.lang.String(i6214[0], i6213[0], i6215[0], a43959[0])))), ≥)∧[1 + (-1)bso_28] ≥ 0)



    We simplified constraint (4) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (5)    ((UIncreasing(LOAD23197ARR1(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])), java.lang.Object(java.lang.String(i6214[0], i6213[0], i6215[0], a43959[0])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_28] ≥ 0)







For Pair LOAD23197ARR1(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(java.lang.Object(Tree(o41002, o41003, NULL)), o41003, o41004)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959))) → COND_LOAD23197ARR1(&&(&&(&&(&&(>=(i6214, 0), <=(i6214, 42)), >(i6073, 0)), <(i6073, i3)), >(+(i6073, 1), 0)), java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(java.lang.Object(Tree(o41002, o41003, NULL)), o41003, o41004)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959))) the following chains were created:
  • We consider the chain LOAD23197ARR1(java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1]))) → COND_LOAD23197ARR1(&&(&&(&&(&&(>=(i6214[1], 0), <=(i6214[1], 42)), >(i6073[1], 0)), <(i6073[1], i3[1])), >(+(i6073[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1]))), COND_LOAD23197ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2], java.lang.Object(Tree(java.lang.Object(Tree(o41002[2], o41003[2], NULL)), o41003[2], o41004[2])), java.lang.Object(java.lang.String(i6214[2], i6213[2], i6215[2], a43959[2]))) → LOAD23197(java.lang.Object(ARRAY(i3[2], a43225data[2])), +(i6073[2], 1), o41003[2]) which results in the following constraint:

    (6)    (i3[1]=i3[2]a43225data[1]=a43225data[2]i6073[1]=i6073[2]&&(&&(&&(&&(>=(i6214[1], 0), <=(i6214[1], 42)), >(i6073[1], 0)), <(i6073[1], i3[1])), >(+(i6073[1], 1), 0))=TRUEo41002[1]=o41002[2]o41003[1]=o41003[2]o41004[1]=o41004[2]i6214[1]=i6214[2]i6213[1]=i6213[2]i6215[1]=i6215[2]a43959[1]=a43959[2]LOAD23197ARR1(java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])))≥NonInfC∧LOAD23197ARR1(java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])))≥COND_LOAD23197ARR1(&&(&&(&&(&&(>=(i6214[1], 0), <=(i6214[1], 42)), >(i6073[1], 0)), <(i6073[1], i3[1])), >(+(i6073[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])))∧(UIncreasing(COND_LOAD23197ARR1(&&(&&(&&(&&(>=(i6214[1], 0), <=(i6214[1], 42)), >(i6073[1], 0)), <(i6073[1], i3[1])), >(+(i6073[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])))), ≥))



    We simplified constraint (6) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (7)    (>(+(i6073[1], 1), 0)=TRUE<(i6073[1], i3[1])=TRUE>(i6073[1], 0)=TRUE>=(i6214[1], 0)=TRUE<=(i6214[1], 42)=TRUELOAD23197ARR1(java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])))≥NonInfC∧LOAD23197ARR1(java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])))≥COND_LOAD23197ARR1(&&(&&(&&(&&(>=(i6214[1], 0), <=(i6214[1], 42)), >(i6073[1], 0)), <(i6073[1], i3[1])), >(+(i6073[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])))∧(UIncreasing(COND_LOAD23197ARR1(&&(&&(&&(&&(>=(i6214[1], 0), <=(i6214[1], 42)), >(i6073[1], 0)), <(i6073[1], i3[1])), >(+(i6073[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])))), ≥))



    We simplified constraint (7) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    (i6073[1] ≥ 0∧i3[1] + [-1] + [-1]i6073[1] ≥ 0∧i6073[1] + [-1] ≥ 0∧i6214[1] ≥ 0∧[42] + [-1]i6214[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23197ARR1(&&(&&(&&(&&(>=(i6214[1], 0), <=(i6214[1], 42)), >(i6073[1], 0)), <(i6073[1], i3[1])), >(+(i6073[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])))), ≥)∧[bni_29 + (-1)Bound*bni_29] + [(-1)bni_29]i6073[1] + [bni_29]i3[1] ≥ 0∧[(-1)bso_30] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    (i6073[1] ≥ 0∧i3[1] + [-1] + [-1]i6073[1] ≥ 0∧i6073[1] + [-1] ≥ 0∧i6214[1] ≥ 0∧[42] + [-1]i6214[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23197ARR1(&&(&&(&&(&&(>=(i6214[1], 0), <=(i6214[1], 42)), >(i6073[1], 0)), <(i6073[1], i3[1])), >(+(i6073[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])))), ≥)∧[bni_29 + (-1)Bound*bni_29] + [(-1)bni_29]i6073[1] + [bni_29]i3[1] ≥ 0∧[(-1)bso_30] ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (10)    (i6073[1] ≥ 0∧i3[1] + [-1] + [-1]i6073[1] ≥ 0∧i6073[1] + [-1] ≥ 0∧i6214[1] ≥ 0∧[42] + [-1]i6214[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23197ARR1(&&(&&(&&(&&(>=(i6214[1], 0), <=(i6214[1], 42)), >(i6073[1], 0)), <(i6073[1], i3[1])), >(+(i6073[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])))), ≥)∧[bni_29 + (-1)Bound*bni_29] + [(-1)bni_29]i6073[1] + [bni_29]i3[1] ≥ 0∧[(-1)bso_30] ≥ 0)



    We simplified constraint (10) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (11)    (i6073[1] ≥ 0∧i3[1] + [-1] + [-1]i6073[1] ≥ 0∧i6073[1] + [-1] ≥ 0∧i6214[1] ≥ 0∧[42] + [-1]i6214[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23197ARR1(&&(&&(&&(&&(>=(i6214[1], 0), <=(i6214[1], 42)), >(i6073[1], 0)), <(i6073[1], i3[1])), >(+(i6073[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[bni_29 + (-1)Bound*bni_29] + [(-1)bni_29]i6073[1] + [bni_29]i3[1] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_30] ≥ 0)



    We simplified constraint (11) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (12)    ([1] + i6073[1] ≥ 0∧i3[1] + [-2] + [-1]i6073[1] ≥ 0∧i6073[1] ≥ 0∧i6214[1] ≥ 0∧[42] + [-1]i6214[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23197ARR1(&&(&&(&&(&&(>=(i6214[1], 0), <=(i6214[1], 42)), >(i6073[1], 0)), <(i6073[1], i3[1])), >(+(i6073[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_29] + [(-1)bni_29]i6073[1] + [bni_29]i3[1] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_30] ≥ 0)



    We simplified constraint (12) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (13)    ([1] + i6073[1] ≥ 0∧i3[1] ≥ 0∧i6073[1] ≥ 0∧i6214[1] ≥ 0∧[42] + [-1]i6214[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23197ARR1(&&(&&(&&(&&(>=(i6214[1], 0), <=(i6214[1], 42)), >(i6073[1], 0)), <(i6073[1], i3[1])), >(+(i6073[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_29 + (2)bni_29] + [bni_29]i3[1] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_30] ≥ 0)







For Pair COND_LOAD23197ARR1(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(java.lang.Object(Tree(o41002, o41003, NULL)), o41003, o41004)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959))) → LOAD23197(java.lang.Object(ARRAY(i3, a43225data)), +(i6073, 1), o41003) the following chains were created:
  • We consider the chain COND_LOAD23197ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2], java.lang.Object(Tree(java.lang.Object(Tree(o41002[2], o41003[2], NULL)), o41003[2], o41004[2])), java.lang.Object(java.lang.String(i6214[2], i6213[2], i6215[2], a43959[2]))) → LOAD23197(java.lang.Object(ARRAY(i3[2], a43225data[2])), +(i6073[2], 1), o41003[2]) which results in the following constraint:

    (14)    (COND_LOAD23197ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2], java.lang.Object(Tree(java.lang.Object(Tree(o41002[2], o41003[2], NULL)), o41003[2], o41004[2])), java.lang.Object(java.lang.String(i6214[2], i6213[2], i6215[2], a43959[2])))≥NonInfC∧COND_LOAD23197ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2], java.lang.Object(Tree(java.lang.Object(Tree(o41002[2], o41003[2], NULL)), o41003[2], o41004[2])), java.lang.Object(java.lang.String(i6214[2], i6213[2], i6215[2], a43959[2])))≥LOAD23197(java.lang.Object(ARRAY(i3[2], a43225data[2])), +(i6073[2], 1), o41003[2])∧(UIncreasing(LOAD23197(java.lang.Object(ARRAY(i3[2], a43225data[2])), +(i6073[2], 1), o41003[2])), ≥))



    We simplified constraint (14) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (15)    ((UIncreasing(LOAD23197(java.lang.Object(ARRAY(i3[2], a43225data[2])), +(i6073[2], 1), o41003[2])), ≥)∧[(-1)bso_32] ≥ 0)



    We simplified constraint (15) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (16)    ((UIncreasing(LOAD23197(java.lang.Object(ARRAY(i3[2], a43225data[2])), +(i6073[2], 1), o41003[2])), ≥)∧[(-1)bso_32] ≥ 0)



    We simplified constraint (16) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (17)    ((UIncreasing(LOAD23197(java.lang.Object(ARRAY(i3[2], a43225data[2])), +(i6073[2], 1), o41003[2])), ≥)∧[(-1)bso_32] ≥ 0)



    We simplified constraint (17) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (18)    ((UIncreasing(LOAD23197(java.lang.Object(ARRAY(i3[2], a43225data[2])), +(i6073[2], 1), o41003[2])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_32] ≥ 0)







For Pair LOAD23197(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41008, o41009, o41010))) → LOAD23197ARR2(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41008, o41009, o41010)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959))) the following chains were created:
  • We consider the chain LOAD23197(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], java.lang.Object(Tree(o41008[3], o41009[3], o41010[3]))) → LOAD23197ARR2(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], java.lang.Object(Tree(o41008[3], o41009[3], o41010[3])), java.lang.Object(java.lang.String(i6214[3], i6213[3], i6215[3], a43959[3]))) which results in the following constraint:

    (19)    (LOAD23197(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], java.lang.Object(Tree(o41008[3], o41009[3], o41010[3])))≥NonInfC∧LOAD23197(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], java.lang.Object(Tree(o41008[3], o41009[3], o41010[3])))≥LOAD23197ARR2(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], java.lang.Object(Tree(o41008[3], o41009[3], o41010[3])), java.lang.Object(java.lang.String(i6214[3], i6213[3], i6215[3], a43959[3])))∧(UIncreasing(LOAD23197ARR2(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], java.lang.Object(Tree(o41008[3], o41009[3], o41010[3])), java.lang.Object(java.lang.String(i6214[3], i6213[3], i6215[3], a43959[3])))), ≥))



    We simplified constraint (19) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (20)    ((UIncreasing(LOAD23197ARR2(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], java.lang.Object(Tree(o41008[3], o41009[3], o41010[3])), java.lang.Object(java.lang.String(i6214[3], i6213[3], i6215[3], a43959[3])))), ≥)∧[1 + (-1)bso_34] ≥ 0)



    We simplified constraint (20) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (21)    ((UIncreasing(LOAD23197ARR2(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], java.lang.Object(Tree(o41008[3], o41009[3], o41010[3])), java.lang.Object(java.lang.String(i6214[3], i6213[3], i6215[3], a43959[3])))), ≥)∧[1 + (-1)bso_34] ≥ 0)



    We simplified constraint (21) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (22)    ((UIncreasing(LOAD23197ARR2(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], java.lang.Object(Tree(o41008[3], o41009[3], o41010[3])), java.lang.Object(java.lang.String(i6214[3], i6213[3], i6215[3], a43959[3])))), ≥)∧[1 + (-1)bso_34] ≥ 0)



    We simplified constraint (22) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (23)    ((UIncreasing(LOAD23197ARR2(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], java.lang.Object(Tree(o41008[3], o41009[3], o41010[3])), java.lang.Object(java.lang.String(i6214[3], i6213[3], i6215[3], a43959[3])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_34] ≥ 0)







For Pair LOAD23197ARR2(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41008, java.lang.Object(Tree(o41008, o41009, NULL)), o41010)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959))) → COND_LOAD23197ARR2(&&(&&(&&(>(i6214, 42), >(i6073, 0)), <(i6073, i3)), >(+(i6073, 1), 0)), java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41008, java.lang.Object(Tree(o41008, o41009, NULL)), o41010)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959))) the following chains were created:
  • We consider the chain LOAD23197ARR2(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4]))) → COND_LOAD23197ARR2(&&(&&(&&(>(i6214[4], 42), >(i6073[4], 0)), <(i6073[4], i3[4])), >(+(i6073[4], 1), 0)), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4]))), COND_LOAD23197ARR2(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], java.lang.Object(Tree(o41008[5], java.lang.Object(Tree(o41008[5], o41009[5], NULL)), o41010[5])), java.lang.Object(java.lang.String(i6214[5], i6213[5], i6215[5], a43959[5]))) → LOAD23197(java.lang.Object(ARRAY(i3[5], a43225data[5])), +(i6073[5], 1), o41008[5]) which results in the following constraint:

    (24)    (i6214[4]=i6214[5]i6213[4]=i6213[5]i6215[4]=i6215[5]a43959[4]=a43959[5]o41008[4]=o41008[5]o41009[4]=o41009[5]o41010[4]=o41010[5]i6073[4]=i6073[5]&&(&&(&&(>(i6214[4], 42), >(i6073[4], 0)), <(i6073[4], i3[4])), >(+(i6073[4], 1), 0))=TRUEi3[4]=i3[5]a43225data[4]=a43225data[5]LOAD23197ARR2(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])))≥NonInfC∧LOAD23197ARR2(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])))≥COND_LOAD23197ARR2(&&(&&(&&(>(i6214[4], 42), >(i6073[4], 0)), <(i6073[4], i3[4])), >(+(i6073[4], 1), 0)), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])))∧(UIncreasing(COND_LOAD23197ARR2(&&(&&(&&(>(i6214[4], 42), >(i6073[4], 0)), <(i6073[4], i3[4])), >(+(i6073[4], 1), 0)), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])))), ≥))



    We simplified constraint (24) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (25)    (>(+(i6073[4], 1), 0)=TRUE<(i6073[4], i3[4])=TRUE>(i6214[4], 42)=TRUE>(i6073[4], 0)=TRUELOAD23197ARR2(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])))≥NonInfC∧LOAD23197ARR2(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])))≥COND_LOAD23197ARR2(&&(&&(&&(>(i6214[4], 42), >(i6073[4], 0)), <(i6073[4], i3[4])), >(+(i6073[4], 1), 0)), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])))∧(UIncreasing(COND_LOAD23197ARR2(&&(&&(&&(>(i6214[4], 42), >(i6073[4], 0)), <(i6073[4], i3[4])), >(+(i6073[4], 1), 0)), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])))), ≥))



    We simplified constraint (25) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (26)    (i6073[4] ≥ 0∧i3[4] + [-1] + [-1]i6073[4] ≥ 0∧i6214[4] + [-43] ≥ 0∧i6073[4] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23197ARR2(&&(&&(&&(>(i6214[4], 42), >(i6073[4], 0)), <(i6073[4], i3[4])), >(+(i6073[4], 1), 0)), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])))), ≥)∧[bni_35 + (-1)Bound*bni_35] + [(-1)bni_35]i6073[4] + [bni_35]i3[4] ≥ 0∧[(-1)bso_36] ≥ 0)



    We simplified constraint (26) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (27)    (i6073[4] ≥ 0∧i3[4] + [-1] + [-1]i6073[4] ≥ 0∧i6214[4] + [-43] ≥ 0∧i6073[4] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23197ARR2(&&(&&(&&(>(i6214[4], 42), >(i6073[4], 0)), <(i6073[4], i3[4])), >(+(i6073[4], 1), 0)), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])))), ≥)∧[bni_35 + (-1)Bound*bni_35] + [(-1)bni_35]i6073[4] + [bni_35]i3[4] ≥ 0∧[(-1)bso_36] ≥ 0)



    We simplified constraint (27) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (28)    (i6073[4] ≥ 0∧i3[4] + [-1] + [-1]i6073[4] ≥ 0∧i6214[4] + [-43] ≥ 0∧i6073[4] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23197ARR2(&&(&&(&&(>(i6214[4], 42), >(i6073[4], 0)), <(i6073[4], i3[4])), >(+(i6073[4], 1), 0)), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])))), ≥)∧[bni_35 + (-1)Bound*bni_35] + [(-1)bni_35]i6073[4] + [bni_35]i3[4] ≥ 0∧[(-1)bso_36] ≥ 0)



    We simplified constraint (28) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (29)    (i6073[4] ≥ 0∧i3[4] + [-1] + [-1]i6073[4] ≥ 0∧i6214[4] + [-43] ≥ 0∧i6073[4] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23197ARR2(&&(&&(&&(>(i6214[4], 42), >(i6073[4], 0)), <(i6073[4], i3[4])), >(+(i6073[4], 1), 0)), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[bni_35 + (-1)Bound*bni_35] + [(-1)bni_35]i6073[4] + [bni_35]i3[4] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_36] ≥ 0)



    We simplified constraint (29) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (30)    ([1] + i6073[4] ≥ 0∧i3[4] + [-2] + [-1]i6073[4] ≥ 0∧i6214[4] + [-43] ≥ 0∧i6073[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD23197ARR2(&&(&&(&&(>(i6214[4], 42), >(i6073[4], 0)), <(i6073[4], i3[4])), >(+(i6073[4], 1), 0)), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_35] + [(-1)bni_35]i6073[4] + [bni_35]i3[4] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_36] ≥ 0)



    We simplified constraint (30) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (31)    ([1] + i6073[4] ≥ 0∧i3[4] ≥ 0∧i6214[4] + [-43] ≥ 0∧i6073[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD23197ARR2(&&(&&(&&(>(i6214[4], 42), >(i6073[4], 0)), <(i6073[4], i3[4])), >(+(i6073[4], 1), 0)), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_35 + (2)bni_35] + [bni_35]i3[4] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_36] ≥ 0)



    We simplified constraint (31) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (32)    ([1] + i6073[4] ≥ 0∧i3[4] ≥ 0∧i6214[4] ≥ 0∧i6073[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD23197ARR2(&&(&&(&&(>(i6214[4], 42), >(i6073[4], 0)), <(i6073[4], i3[4])), >(+(i6073[4], 1), 0)), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_35 + (2)bni_35] + [bni_35]i3[4] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_36] ≥ 0)







For Pair COND_LOAD23197ARR2(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41008, java.lang.Object(Tree(o41008, o41009, NULL)), o41010)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959))) → LOAD23197(java.lang.Object(ARRAY(i3, a43225data)), +(i6073, 1), o41008) the following chains were created:
  • We consider the chain COND_LOAD23197ARR2(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], java.lang.Object(Tree(o41008[5], java.lang.Object(Tree(o41008[5], o41009[5], NULL)), o41010[5])), java.lang.Object(java.lang.String(i6214[5], i6213[5], i6215[5], a43959[5]))) → LOAD23197(java.lang.Object(ARRAY(i3[5], a43225data[5])), +(i6073[5], 1), o41008[5]) which results in the following constraint:

    (33)    (COND_LOAD23197ARR2(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], java.lang.Object(Tree(o41008[5], java.lang.Object(Tree(o41008[5], o41009[5], NULL)), o41010[5])), java.lang.Object(java.lang.String(i6214[5], i6213[5], i6215[5], a43959[5])))≥NonInfC∧COND_LOAD23197ARR2(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], java.lang.Object(Tree(o41008[5], java.lang.Object(Tree(o41008[5], o41009[5], NULL)), o41010[5])), java.lang.Object(java.lang.String(i6214[5], i6213[5], i6215[5], a43959[5])))≥LOAD23197(java.lang.Object(ARRAY(i3[5], a43225data[5])), +(i6073[5], 1), o41008[5])∧(UIncreasing(LOAD23197(java.lang.Object(ARRAY(i3[5], a43225data[5])), +(i6073[5], 1), o41008[5])), ≥))



    We simplified constraint (33) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (34)    ((UIncreasing(LOAD23197(java.lang.Object(ARRAY(i3[5], a43225data[5])), +(i6073[5], 1), o41008[5])), ≥)∧[(-1)bso_38] ≥ 0)



    We simplified constraint (34) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (35)    ((UIncreasing(LOAD23197(java.lang.Object(ARRAY(i3[5], a43225data[5])), +(i6073[5], 1), o41008[5])), ≥)∧[(-1)bso_38] ≥ 0)



    We simplified constraint (35) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (36)    ((UIncreasing(LOAD23197(java.lang.Object(ARRAY(i3[5], a43225data[5])), +(i6073[5], 1), o41008[5])), ≥)∧[(-1)bso_38] ≥ 0)



    We simplified constraint (36) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (37)    ((UIncreasing(LOAD23197(java.lang.Object(ARRAY(i3[5], a43225data[5])), +(i6073[5], 1), o41008[5])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_38] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • LOAD23197(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41002, o41003, o41004))) → LOAD23197ARR1(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41002, o41003, o41004)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959)))
    • ((UIncreasing(LOAD23197ARR1(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])), java.lang.Object(java.lang.String(i6214[0], i6213[0], i6215[0], a43959[0])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_28] ≥ 0)

  • LOAD23197ARR1(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(java.lang.Object(Tree(o41002, o41003, NULL)), o41003, o41004)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959))) → COND_LOAD23197ARR1(&&(&&(&&(&&(>=(i6214, 0), <=(i6214, 42)), >(i6073, 0)), <(i6073, i3)), >(+(i6073, 1), 0)), java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(java.lang.Object(Tree(o41002, o41003, NULL)), o41003, o41004)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959)))
    • ([1] + i6073[1] ≥ 0∧i3[1] ≥ 0∧i6073[1] ≥ 0∧i6214[1] ≥ 0∧[42] + [-1]i6214[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23197ARR1(&&(&&(&&(&&(>=(i6214[1], 0), <=(i6214[1], 42)), >(i6073[1], 0)), <(i6073[1], i3[1])), >(+(i6073[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_29 + (2)bni_29] + [bni_29]i3[1] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_30] ≥ 0)

  • COND_LOAD23197ARR1(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(java.lang.Object(Tree(o41002, o41003, NULL)), o41003, o41004)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959))) → LOAD23197(java.lang.Object(ARRAY(i3, a43225data)), +(i6073, 1), o41003)
    • ((UIncreasing(LOAD23197(java.lang.Object(ARRAY(i3[2], a43225data[2])), +(i6073[2], 1), o41003[2])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_32] ≥ 0)

  • LOAD23197(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41008, o41009, o41010))) → LOAD23197ARR2(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41008, o41009, o41010)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959)))
    • ((UIncreasing(LOAD23197ARR2(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], java.lang.Object(Tree(o41008[3], o41009[3], o41010[3])), java.lang.Object(java.lang.String(i6214[3], i6213[3], i6215[3], a43959[3])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_34] ≥ 0)

  • LOAD23197ARR2(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41008, java.lang.Object(Tree(o41008, o41009, NULL)), o41010)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959))) → COND_LOAD23197ARR2(&&(&&(&&(>(i6214, 42), >(i6073, 0)), <(i6073, i3)), >(+(i6073, 1), 0)), java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41008, java.lang.Object(Tree(o41008, o41009, NULL)), o41010)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959)))
    • ([1] + i6073[4] ≥ 0∧i3[4] ≥ 0∧i6214[4] ≥ 0∧i6073[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD23197ARR2(&&(&&(&&(>(i6214[4], 42), >(i6073[4], 0)), <(i6073[4], i3[4])), >(+(i6073[4], 1), 0)), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_35 + (2)bni_35] + [bni_35]i3[4] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_36] ≥ 0)

  • COND_LOAD23197ARR2(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o41008, java.lang.Object(Tree(o41008, o41009, NULL)), o41010)), java.lang.Object(java.lang.String(i6214, i6213, i6215, a43959))) → LOAD23197(java.lang.Object(ARRAY(i3, a43225data)), +(i6073, 1), o41008)
    • ((UIncreasing(LOAD23197(java.lang.Object(ARRAY(i3[5], a43225data[5])), +(i6073[5], 1), o41008[5])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_38] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(LOAD23197(x1, x2, x3)) = [1] + [-1]x2 + [-1]x1   
POL(java.lang.Object(x1)) = x1   
POL(ARRAY(x1, x2)) = [-1] + [-1]x1   
POL(Tree(x1, x2, x3)) = [-1]   
POL(LOAD23197ARR1(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x2 + [-1]x1   
POL(java.lang.String(x1, x2, x3, x4)) = [-1]   
POL(NULL) = [-1]   
POL(COND_LOAD23197ARR1(x1, x2, x3, x4, x5)) = [-1] + [-1]x5 + [-1]x3 + [-1]x2   
POL(&&(x1, x2)) = [-1]   
POL(>=(x1, x2)) = [-1]   
POL(0) = 0   
POL(<=(x1, x2)) = [-1]   
POL(42) = [42]   
POL(>(x1, x2)) = [-1]   
POL(<(x1, x2)) = [-1]   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   
POL(LOAD23197ARR2(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x2 + [-1]x1   
POL(COND_LOAD23197ARR2(x1, x2, x3, x4, x5)) = [-1] + [-1]x5 + [-1]x3 + [-1]x2   

The following pairs are in P>:

LOAD23197(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], java.lang.Object(Tree(o41002[0], o41003[0], o41004[0]))) → LOAD23197ARR1(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])), java.lang.Object(java.lang.String(i6214[0], i6213[0], i6215[0], a43959[0])))
LOAD23197(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], java.lang.Object(Tree(o41008[3], o41009[3], o41010[3]))) → LOAD23197ARR2(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], java.lang.Object(Tree(o41008[3], o41009[3], o41010[3])), java.lang.Object(java.lang.String(i6214[3], i6213[3], i6215[3], a43959[3])))

The following pairs are in Pbound:

LOAD23197ARR1(java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1]))) → COND_LOAD23197ARR1(&&(&&(&&(&&(>=(i6214[1], 0), <=(i6214[1], 42)), >(i6073[1], 0)), <(i6073[1], i3[1])), >(+(i6073[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])))
LOAD23197ARR2(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4]))) → COND_LOAD23197ARR2(&&(&&(&&(>(i6214[4], 42), >(i6073[4], 0)), <(i6073[4], i3[4])), >(+(i6073[4], 1), 0)), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])))

The following pairs are in P:

LOAD23197ARR1(java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1]))) → COND_LOAD23197ARR1(&&(&&(&&(&&(>=(i6214[1], 0), <=(i6214[1], 42)), >(i6073[1], 0)), <(i6073[1], i3[1])), >(+(i6073[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])))
COND_LOAD23197ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2], java.lang.Object(Tree(java.lang.Object(Tree(o41002[2], o41003[2], NULL)), o41003[2], o41004[2])), java.lang.Object(java.lang.String(i6214[2], i6213[2], i6215[2], a43959[2]))) → LOAD23197(java.lang.Object(ARRAY(i3[2], a43225data[2])), +(i6073[2], 1), o41003[2])
LOAD23197ARR2(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4]))) → COND_LOAD23197ARR2(&&(&&(&&(>(i6214[4], 42), >(i6073[4], 0)), <(i6073[4], i3[4])), >(+(i6073[4], 1), 0)), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])))
COND_LOAD23197ARR2(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], java.lang.Object(Tree(o41008[5], java.lang.Object(Tree(o41008[5], o41009[5], NULL)), o41010[5])), java.lang.Object(java.lang.String(i6214[5], i6213[5], i6215[5], a43959[5]))) → LOAD23197(java.lang.Object(ARRAY(i3[5], a43225data[5])), +(i6073[5], 1), o41008[5])

There are no usable rules.

(13) Complex Obligation (AND)

(14) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(1): LOAD23197ARR1(java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1]))) → COND_LOAD23197ARR1(i6214[1] >= 0 && i6214[1] <= 42 && i6073[1] > 0 && i6073[1] < i3[1] && i6073[1] + 1 > 0, java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], java.lang.Object(Tree(java.lang.Object(Tree(o41002[1], o41003[1], NULL)), o41003[1], o41004[1])), java.lang.Object(java.lang.String(i6214[1], i6213[1], i6215[1], a43959[1])))
(2): COND_LOAD23197ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2], java.lang.Object(Tree(java.lang.Object(Tree(o41002[2], o41003[2], NULL)), o41003[2], o41004[2])), java.lang.Object(java.lang.String(i6214[2], i6213[2], i6215[2], a43959[2]))) → LOAD23197(java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2] + 1, o41003[2])
(4): LOAD23197ARR2(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4]))) → COND_LOAD23197ARR2(i6214[4] > 42 && i6073[4] > 0 && i6073[4] < i3[4] && i6073[4] + 1 > 0, java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], java.lang.Object(Tree(o41008[4], java.lang.Object(Tree(o41008[4], o41009[4], NULL)), o41010[4])), java.lang.Object(java.lang.String(i6214[4], i6213[4], i6215[4], a43959[4])))
(5): COND_LOAD23197ARR2(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], java.lang.Object(Tree(o41008[5], java.lang.Object(Tree(o41008[5], o41009[5], NULL)), o41010[5])), java.lang.Object(java.lang.String(i6214[5], i6213[5], i6215[5], a43959[5]))) → LOAD23197(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5] + 1, o41008[5])

(1) -> (2), if (((i3[1]* i3[2])∧(a43225data[1]* a43225data[2]))∧(i6073[1]* i6073[2])∧(i6214[1] >= 0 && i6214[1] <= 42 && i6073[1] > 0 && i6073[1] < i3[1] && i6073[1] + 1 > 0* TRUE)∧((o41002[1]* o41002[2])∧(o41003[1]* o41003[2])∧(o41004[1]* o41004[2]))∧((i6214[1]* i6214[2])∧(i6213[1]* i6213[2])∧(i6215[1]* i6215[2])∧(a43959[1]* a43959[2])))


(4) -> (5), if (((i6214[4]* i6214[5])∧(i6213[4]* i6213[5])∧(i6215[4]* i6215[5])∧(a43959[4]* a43959[5]))∧((o41008[4]* o41008[5])∧(o41009[4]* o41009[5])∧(o41010[4]* o41010[5]))∧(i6073[4]* i6073[5])∧(i6214[4] > 42 && i6073[4] > 0 && i6073[4] < i3[4] && i6073[4] + 1 > 0* TRUE)∧((i3[4]* i3[5])∧(a43225data[4]* a43225data[5])))



The set Q consists of the following terms:
Load23197(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, x4, x5)))
Load23197ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4, NULL)), x4, x5)), java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load23197ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4, NULL)), x4, x5)), java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Load23197ARR2(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, java.lang.Object(Tree(x3, x4, NULL)), x5)), java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load23197ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, java.lang.Object(Tree(x3, x4, NULL)), x5)), java.lang.Object(java.lang.String(x6, x7, x8, x9)))

(15) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 4 less nodes.

(16) TRUE

(17) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD23197(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], java.lang.Object(Tree(o41002[0], o41003[0], o41004[0]))) → LOAD23197ARR1(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])), java.lang.Object(java.lang.String(i6214[0], i6213[0], i6215[0], a43959[0])))
(2): COND_LOAD23197ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2], java.lang.Object(Tree(java.lang.Object(Tree(o41002[2], o41003[2], NULL)), o41003[2], o41004[2])), java.lang.Object(java.lang.String(i6214[2], i6213[2], i6215[2], a43959[2]))) → LOAD23197(java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2] + 1, o41003[2])
(3): LOAD23197(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], java.lang.Object(Tree(o41008[3], o41009[3], o41010[3]))) → LOAD23197ARR2(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], java.lang.Object(Tree(o41008[3], o41009[3], o41010[3])), java.lang.Object(java.lang.String(i6214[3], i6213[3], i6215[3], a43959[3])))
(5): COND_LOAD23197ARR2(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], java.lang.Object(Tree(o41008[5], java.lang.Object(Tree(o41008[5], o41009[5], NULL)), o41010[5])), java.lang.Object(java.lang.String(i6214[5], i6213[5], i6215[5], a43959[5]))) → LOAD23197(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5] + 1, o41008[5])

(2) -> (0), if ((i6073[2] + 1* i6073[0])∧(o41003[2]* java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])))∧((i3[2]* i3[0])∧(a43225data[2]* a43225data[0])))


(5) -> (0), if ((o41008[5]* java.lang.Object(Tree(o41002[0], o41003[0], o41004[0])))∧((i3[5]* i3[0])∧(a43225data[5]* a43225data[0]))∧(i6073[5] + 1* i6073[0]))


(2) -> (3), if ((o41003[2]* java.lang.Object(Tree(o41008[3], o41009[3], o41010[3])))∧((i3[2]* i3[3])∧(a43225data[2]* a43225data[3]))∧(i6073[2] + 1* i6073[3]))


(5) -> (3), if ((i6073[5] + 1* i6073[3])∧((i3[5]* i3[3])∧(a43225data[5]* a43225data[3]))∧(o41008[5]* java.lang.Object(Tree(o41008[3], o41009[3], o41010[3]))))



The set Q consists of the following terms:
Load23197(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, x4, x5)))
Load23197ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4, NULL)), x4, x5)), java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load23197ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4, NULL)), x4, x5)), java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Load23197ARR2(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, java.lang.Object(Tree(x3, x4, NULL)), x5)), java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load23197ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, java.lang.Object(Tree(x3, x4, NULL)), x5)), java.lang.Object(java.lang.String(x6, x7, x8, x9)))

(18) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 4 less nodes.

(19) TRUE

(20) Obligation:

ITRS problem:

The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean

The TRS R consists of the following rules:
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o44066, o44067, o44068)), java.lang.Object(List(o39859, java.lang.Object(Tree(o44066, o44067, o44068)))), i6075) → Load23142ARR3(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o44066, o44067, o44068)), java.lang.Object(List(o39859, java.lang.Object(Tree(o44066, o44067, o44068)))), i6075, java.lang.Object(java.lang.String(0, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494)))
Load23142ARR3(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(NULL, NULL, o44068)), java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, NULL, o44068)))), i6075, java.lang.Object(java.lang.String(0, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494))) → Cond_Load23142ARR3(i6073 + 1 > 0 && i6073 + 1 < i3 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(NULL, NULL, o44068)), java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, NULL, o44068)))), i6075, java.lang.Object(java.lang.String(0, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494)))
Cond_Load23142ARR3(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(NULL, NULL, o44068)), java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, NULL, o44068)))), i6075, java.lang.Object(java.lang.String(0, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494))) → New26117(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, java.lang.Object(Tree(NULL, NULL, o44068)), o39859, i6075, NULL, NULL)
Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, o39859, i6075) → Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, o39859, i6075 + -1)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, NULL)), i6075) → Cond_Load23142(i6075 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, NULL)), i6075)
Cond_Load23142(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, NULL)), i6075) → Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, o39859, i6075 + -1)
New26117(java.lang.Object(ARRAY(i3, a43225data)), i6885, o39838, o39859, i6075, NULL, NULL) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6885, o39838, java.lang.Object(List(java.lang.Object(List(o39859, NULL)), NULL)), i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(o44061, o44062, o44063)))), i6075) → Load23142ARR4(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(o44061, o44062, o44063)))), i6075, java.lang.Object(java.lang.String(0, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494)))
Load23142ARR4(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, o44062, o44063)))), i6075, java.lang.Object(java.lang.String(0, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494))) → Cond_Load23142ARR4(i6073 + 1 > 0 && i6073 + 1 < i3 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, o44062, o44063)))), i6075, java.lang.Object(java.lang.String(0, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494)))
Cond_Load23142ARR4(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, o44062, o44063)))), i6075, java.lang.Object(java.lang.String(0, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, o39838new, java.lang.Object(List(java.lang.Object(List(o39859, NULL)), NULL)), i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(o45272, o45273, o45274)))), i6075) → Load23142ARR5(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(o45272, o45273, o45274)))), i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494)))
Load23142ARR5(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, o45273, o45274)))), i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494))) → Cond_Load23142ARR5(i7267 > 0 && i6073 + 1 > 0 && i6073 + 1 < i3 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, o45273, o45274)))), i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494)))
Cond_Load23142ARR5(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, o45273, o45274)))), i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, o39838new, java.lang.Object(List(java.lang.Object(List(o39859, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)))), i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o45288, o45289, o45290)), java.lang.Object(List(o39859, java.lang.Object(Tree(o45288, o45289, o45290)))), i6075) → Load23142ARR6(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o45288, o45289, o45290)), java.lang.Object(List(o39859, java.lang.Object(Tree(o45288, o45289, o45290)))), i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494)))
Load23142ARR6(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(NULL, java.lang.Object(Tree(NULL, NULL, NULL)), o45290)), java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, java.lang.Object(Tree(NULL, NULL, NULL)), o45290)))), i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494))) → Cond_Load23142ARR6(i7267 > 0 && i6073 + 1 > 0 && i6073 + 1 < i3 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(NULL, java.lang.Object(Tree(NULL, NULL, NULL)), o45290)), java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, java.lang.Object(Tree(NULL, NULL, NULL)), o45290)))), i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494)))
Cond_Load23142ARR6(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(NULL, java.lang.Object(Tree(NULL, NULL, NULL)), o45290)), java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, java.lang.Object(Tree(NULL, NULL, NULL)), o45290)))), i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, java.lang.Object(Tree(NULL, java.lang.Object(Tree(NULL, NULL, NULL)), o45290)), java.lang.Object(List(java.lang.Object(List(o39859, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)))), i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(o45338, o45339, o45340)))), i6075) → Load23142ARR7(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(o45338, o45339, o45340)))), i6075, java.lang.Object(java.lang.String(0, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Load23142ARR7(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), o45339, o45340)))), i6075, java.lang.Object(java.lang.String(0, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Cond_Load23142ARR7(i6073 + 1 > 0 && i6073 + 1 < i3 && i6444 > 0 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), o45339, o45340)))), i6075, java.lang.Object(java.lang.String(0, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Cond_Load23142ARR7(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), o45339, o45340)))), i6075, java.lang.Object(java.lang.String(0, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, o39838new, java.lang.Object(List(java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, NULL, NULL)))), NULL)), i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o45354, o45355, o45356)), java.lang.Object(List(o39859, java.lang.Object(Tree(o45354, o45355, o45356)))), i6075) → Load23142ARR8(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o45354, o45355, o45356)), java.lang.Object(List(o39859, java.lang.Object(Tree(o45354, o45355, o45356)))), i6075, java.lang.Object(java.lang.String(0, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Load23142ARR8(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), NULL, o45356)), java.lang.Object(List(o39859, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), NULL, o45356)))), i6075, java.lang.Object(java.lang.String(0, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Cond_Load23142ARR8(i6073 + 1 > 0 && i6073 + 1 < i3 && i6444 > 0 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), NULL, o45356)), java.lang.Object(List(o39859, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), NULL, o45356)))), i6075, java.lang.Object(java.lang.String(0, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Cond_Load23142ARR8(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), NULL, o45356)), java.lang.Object(List(o39859, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), NULL, o45356)))), i6075, java.lang.Object(java.lang.String(0, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), NULL, o45356)), java.lang.Object(List(java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, NULL, NULL)))), NULL)), i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(o46622, o46623, o46624)))), i6075) → Load23142ARR9(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(o46622, o46623, o46624)))), i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Load23142ARR9(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), o46623, o46624)))), i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Cond_Load23142ARR9(i7793 > 0 && i6073 + 1 > 0 && i6073 + 1 < i3 && i6444 > 0 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), o46623, o46624)))), i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Cond_Load23142ARR9(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), o46623, o46624)))), i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, o39838new, java.lang.Object(List(java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, NULL, NULL)))), java.lang.Object(Tree(NULL, NULL, NULL)))), i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o46644, o46645, o46646)), java.lang.Object(List(o39859, java.lang.Object(Tree(o46644, o46645, o46646)))), i6075) → Load23142ARR10(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o46644, o46645, o46646)), java.lang.Object(List(o39859, java.lang.Object(Tree(o46644, o46645, o46646)))), i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Load23142ARR10(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)), o46646)), java.lang.Object(List(o39859, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)), o46646)))), i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Cond_Load23142ARR10(i7793 > 0 && i6073 + 1 > 0 && i6073 + 1 < i3 && i6444 > 0 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)), o46646)), java.lang.Object(List(o39859, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)), o46646)))), i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Cond_Load23142ARR10(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)), o46646)), java.lang.Object(List(o39859, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)), o46646)))), i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)), o46646)), java.lang.Object(List(java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, NULL, NULL)))), java.lang.Object(Tree(NULL, NULL, NULL)))), i6075)
The set Q consists of the following terms:
Load23142ARR3(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(NULL, NULL, x3)), java.lang.Object(List(x4, java.lang.Object(Tree(NULL, NULL, x3)))), x5, java.lang.Object(java.lang.String(0, x6, x7, x8)), java.lang.Object(java.lang.String(0, x9, x10, x11)))
Cond_Load23142ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(NULL, NULL, x3)), java.lang.Object(List(x4, java.lang.Object(Tree(NULL, NULL, x3)))), x5, java.lang.Object(java.lang.String(0, x6, x7, x8)), java.lang.Object(java.lang.String(0, x9, x10, x11)))
Inc23250(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load23142(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(x4, NULL)), x5)
Cond_Load23142(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(x4, NULL)), x5)
New26117(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, NULL, NULL)
Load23142(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(x4, java.lang.Object(Tree(x5, x6, x7)))), x8)
Load23142ARR4(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(x4, java.lang.Object(Tree(NULL, x5, x6)))), x7, java.lang.Object(java.lang.String(0, x8, x9, x10)), java.lang.Object(java.lang.String(0, x11, x12, x13)))
Cond_Load23142ARR4(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(x4, java.lang.Object(Tree(NULL, x5, x6)))), x7, java.lang.Object(java.lang.String(0, x8, x9, x10)), java.lang.Object(java.lang.String(0, x11, x12, x13)))
Load23142ARR5(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(x4, java.lang.Object(Tree(NULL, x5, x6)))), x7, java.lang.Object(java.lang.String(x8, x9, x10, x11)), java.lang.Object(java.lang.String(0, x12, x13, x14)))
Cond_Load23142ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(x4, java.lang.Object(Tree(NULL, x5, x6)))), x7, java.lang.Object(java.lang.String(x8, x9, x10, x11)), java.lang.Object(java.lang.String(0, x12, x13, x14)))
Load23142ARR6(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(NULL, java.lang.Object(Tree(NULL, NULL, NULL)), x3)), java.lang.Object(List(x4, java.lang.Object(Tree(NULL, java.lang.Object(Tree(NULL, NULL, NULL)), x3)))), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)), java.lang.Object(java.lang.String(0, x10, x11, x12)))
Cond_Load23142ARR6(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(NULL, java.lang.Object(Tree(NULL, NULL, NULL)), x3)), java.lang.Object(List(x4, java.lang.Object(Tree(NULL, java.lang.Object(Tree(NULL, NULL, NULL)), x3)))), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)), java.lang.Object(java.lang.String(0, x10, x11, x12)))
Load23142ARR7(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(x4, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), x5, x6)))), x7, java.lang.Object(java.lang.String(0, x8, x9, x10)), java.lang.Object(java.lang.String(x11, x12, x13, x14)))
Cond_Load23142ARR7(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(x4, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), x5, x6)))), x7, java.lang.Object(java.lang.String(0, x8, x9, x10)), java.lang.Object(java.lang.String(x11, x12, x13, x14)))
Load23142ARR8(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), NULL, x3)), java.lang.Object(List(x4, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), NULL, x3)))), x5, java.lang.Object(java.lang.String(0, x6, x7, x8)), java.lang.Object(java.lang.String(x9, x10, x11, x12)))
Cond_Load23142ARR8(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), NULL, x3)), java.lang.Object(List(x4, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), NULL, x3)))), x5, java.lang.Object(java.lang.String(0, x6, x7, x8)), java.lang.Object(java.lang.String(x9, x10, x11, x12)))
Load23142ARR9(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(x4, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), x5, x6)))), x7, java.lang.Object(java.lang.String(x8, x9, x10, x11)), java.lang.Object(java.lang.String(x12, x13, x14, x15)))
Cond_Load23142ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(x4, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), x5, x6)))), x7, java.lang.Object(java.lang.String(x8, x9, x10, x11)), java.lang.Object(java.lang.String(x12, x13, x14, x15)))
Load23142ARR10(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)), x3)), java.lang.Object(List(x4, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)), x3)))), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)), java.lang.Object(java.lang.String(x10, x11, x12, x13)))
Cond_Load23142ARR10(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)), x3)), java.lang.Object(List(x4, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)), x3)))), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)), java.lang.Object(java.lang.String(x10, x11, x12, x13)))

(21) GroundTermsRemoverProof (EQUIVALENT transformation)

Some arguments are removed because they always contain the same ground term.
We removed the following ground terms:
  • NULL

We removed arguments according to the following replacements:

New26117(x1, x2, x3, x4, x5, x6, x7) → New26117(x1, x2, x3, x4, x5)

(22) Obligation:

ITRS problem:

The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean

The TRS R consists of the following rules:
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o44066, o44067, o44068)), java.lang.Object(List(o39859, java.lang.Object(Tree(o44066, o44067, o44068)))), i6075) → Load23142ARR3(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o44066, o44067, o44068)), java.lang.Object(List(o39859, java.lang.Object(Tree(o44066, o44067, o44068)))), i6075, java.lang.Object(java.lang.String(0, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494)))
Load23142ARR3(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(NULL, NULL, o44068)), java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, NULL, o44068)))), i6075, java.lang.Object(java.lang.String(0, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494))) → Cond_Load23142ARR3(i6073 + 1 > 0 && i6073 + 1 < i3 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(NULL, NULL, o44068)), java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, NULL, o44068)))), i6075, java.lang.Object(java.lang.String(0, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494)))
Cond_Load23142ARR3(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(NULL, NULL, o44068)), java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, NULL, o44068)))), i6075, java.lang.Object(java.lang.String(0, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494))) → New26117(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, java.lang.Object(Tree(NULL, NULL, o44068)), o39859, i6075)
Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, o39859, i6075) → Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, o39859, i6075 + -1)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, NULL)), i6075) → Cond_Load23142(i6075 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, NULL)), i6075)
Cond_Load23142(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, NULL)), i6075) → Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, o39859, i6075 + -1)
New26117(java.lang.Object(ARRAY(i3, a43225data)), i6885, o39838, o39859, i6075) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6885, o39838, java.lang.Object(List(java.lang.Object(List(o39859, NULL)), NULL)), i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(o44061, o44062, o44063)))), i6075) → Load23142ARR4(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(o44061, o44062, o44063)))), i6075, java.lang.Object(java.lang.String(0, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494)))
Load23142ARR4(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, o44062, o44063)))), i6075, java.lang.Object(java.lang.String(0, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494))) → Cond_Load23142ARR4(i6073 + 1 > 0 && i6073 + 1 < i3 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, o44062, o44063)))), i6075, java.lang.Object(java.lang.String(0, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494)))
Cond_Load23142ARR4(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, o44062, o44063)))), i6075, java.lang.Object(java.lang.String(0, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, o39838new, java.lang.Object(List(java.lang.Object(List(o39859, NULL)), NULL)), i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(o45272, o45273, o45274)))), i6075) → Load23142ARR5(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(o45272, o45273, o45274)))), i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494)))
Load23142ARR5(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, o45273, o45274)))), i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494))) → Cond_Load23142ARR5(i7267 > 0 && i6073 + 1 > 0 && i6073 + 1 < i3 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, o45273, o45274)))), i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494)))
Cond_Load23142ARR5(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, o45273, o45274)))), i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, o39838new, java.lang.Object(List(java.lang.Object(List(o39859, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)))), i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o45288, o45289, o45290)), java.lang.Object(List(o39859, java.lang.Object(Tree(o45288, o45289, o45290)))), i6075) → Load23142ARR6(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o45288, o45289, o45290)), java.lang.Object(List(o39859, java.lang.Object(Tree(o45288, o45289, o45290)))), i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494)))
Load23142ARR6(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(NULL, java.lang.Object(Tree(NULL, NULL, NULL)), o45290)), java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, java.lang.Object(Tree(NULL, NULL, NULL)), o45290)))), i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494))) → Cond_Load23142ARR6(i7267 > 0 && i6073 + 1 > 0 && i6073 + 1 < i3 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(NULL, java.lang.Object(Tree(NULL, NULL, NULL)), o45290)), java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, java.lang.Object(Tree(NULL, NULL, NULL)), o45290)))), i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494)))
Cond_Load23142ARR6(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(NULL, java.lang.Object(Tree(NULL, NULL, NULL)), o45290)), java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, java.lang.Object(Tree(NULL, NULL, NULL)), o45290)))), i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)), java.lang.Object(java.lang.String(0, i6342, i6344, a44494))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, java.lang.Object(Tree(NULL, java.lang.Object(Tree(NULL, NULL, NULL)), o45290)), java.lang.Object(List(java.lang.Object(List(o39859, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)))), i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(o45338, o45339, o45340)))), i6075) → Load23142ARR7(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(o45338, o45339, o45340)))), i6075, java.lang.Object(java.lang.String(0, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Load23142ARR7(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), o45339, o45340)))), i6075, java.lang.Object(java.lang.String(0, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Cond_Load23142ARR7(i6073 + 1 > 0 && i6073 + 1 < i3 && i6444 > 0 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), o45339, o45340)))), i6075, java.lang.Object(java.lang.String(0, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Cond_Load23142ARR7(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), o45339, o45340)))), i6075, java.lang.Object(java.lang.String(0, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, o39838new, java.lang.Object(List(java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, NULL, NULL)))), NULL)), i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o45354, o45355, o45356)), java.lang.Object(List(o39859, java.lang.Object(Tree(o45354, o45355, o45356)))), i6075) → Load23142ARR8(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o45354, o45355, o45356)), java.lang.Object(List(o39859, java.lang.Object(Tree(o45354, o45355, o45356)))), i6075, java.lang.Object(java.lang.String(0, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Load23142ARR8(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), NULL, o45356)), java.lang.Object(List(o39859, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), NULL, o45356)))), i6075, java.lang.Object(java.lang.String(0, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Cond_Load23142ARR8(i6073 + 1 > 0 && i6073 + 1 < i3 && i6444 > 0 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), NULL, o45356)), java.lang.Object(List(o39859, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), NULL, o45356)))), i6075, java.lang.Object(java.lang.String(0, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Cond_Load23142ARR8(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), NULL, o45356)), java.lang.Object(List(o39859, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), NULL, o45356)))), i6075, java.lang.Object(java.lang.String(0, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), NULL, o45356)), java.lang.Object(List(java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, NULL, NULL)))), NULL)), i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(o46622, o46623, o46624)))), i6075) → Load23142ARR9(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(o46622, o46623, o46624)))), i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Load23142ARR9(java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), o46623, o46624)))), i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Cond_Load23142ARR9(i7793 > 0 && i6073 + 1 > 0 && i6073 + 1 < i3 && i6444 > 0 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), o46623, o46624)))), i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Cond_Load23142ARR9(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, o39838, java.lang.Object(List(o39859, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), o46623, o46624)))), i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, o39838new, java.lang.Object(List(java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, NULL, NULL)))), java.lang.Object(Tree(NULL, NULL, NULL)))), i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o46644, o46645, o46646)), java.lang.Object(List(o39859, java.lang.Object(Tree(o46644, o46645, o46646)))), i6075) → Load23142ARR10(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(o46644, o46645, o46646)), java.lang.Object(List(o39859, java.lang.Object(Tree(o46644, o46645, o46646)))), i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Load23142ARR10(java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)), o46646)), java.lang.Object(List(o39859, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)), o46646)))), i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Cond_Load23142ARR10(i7793 > 0 && i6073 + 1 > 0 && i6073 + 1 < i3 && i6444 > 0 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)), o46646)), java.lang.Object(List(o39859, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)), o46646)))), i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Cond_Load23142ARR10(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)), o46646)), java.lang.Object(List(o39859, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)), o46646)))), i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)), o46646)), java.lang.Object(List(java.lang.Object(List(o39859, java.lang.Object(Tree(NULL, NULL, NULL)))), java.lang.Object(Tree(NULL, NULL, NULL)))), i6075)
The set Q consists of the following terms:
Load23142ARR3(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(NULL, NULL, x3)), java.lang.Object(List(x4, java.lang.Object(Tree(NULL, NULL, x3)))), x5, java.lang.Object(java.lang.String(0, x6, x7, x8)), java.lang.Object(java.lang.String(0, x9, x10, x11)))
Cond_Load23142ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(NULL, NULL, x3)), java.lang.Object(List(x4, java.lang.Object(Tree(NULL, NULL, x3)))), x5, java.lang.Object(java.lang.String(0, x6, x7, x8)), java.lang.Object(java.lang.String(0, x9, x10, x11)))
Inc23250(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load23142(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(x4, NULL)), x5)
Cond_Load23142(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(x4, NULL)), x5)
New26117(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load23142(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(x4, java.lang.Object(Tree(x5, x6, x7)))), x8)
Load23142ARR4(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(x4, java.lang.Object(Tree(NULL, x5, x6)))), x7, java.lang.Object(java.lang.String(0, x8, x9, x10)), java.lang.Object(java.lang.String(0, x11, x12, x13)))
Cond_Load23142ARR4(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(x4, java.lang.Object(Tree(NULL, x5, x6)))), x7, java.lang.Object(java.lang.String(0, x8, x9, x10)), java.lang.Object(java.lang.String(0, x11, x12, x13)))
Load23142ARR5(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(x4, java.lang.Object(Tree(NULL, x5, x6)))), x7, java.lang.Object(java.lang.String(x8, x9, x10, x11)), java.lang.Object(java.lang.String(0, x12, x13, x14)))
Cond_Load23142ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(x4, java.lang.Object(Tree(NULL, x5, x6)))), x7, java.lang.Object(java.lang.String(x8, x9, x10, x11)), java.lang.Object(java.lang.String(0, x12, x13, x14)))
Load23142ARR6(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(NULL, java.lang.Object(Tree(NULL, NULL, NULL)), x3)), java.lang.Object(List(x4, java.lang.Object(Tree(NULL, java.lang.Object(Tree(NULL, NULL, NULL)), x3)))), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)), java.lang.Object(java.lang.String(0, x10, x11, x12)))
Cond_Load23142ARR6(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(NULL, java.lang.Object(Tree(NULL, NULL, NULL)), x3)), java.lang.Object(List(x4, java.lang.Object(Tree(NULL, java.lang.Object(Tree(NULL, NULL, NULL)), x3)))), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)), java.lang.Object(java.lang.String(0, x10, x11, x12)))
Load23142ARR7(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(x4, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), x5, x6)))), x7, java.lang.Object(java.lang.String(0, x8, x9, x10)), java.lang.Object(java.lang.String(x11, x12, x13, x14)))
Cond_Load23142ARR7(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(x4, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), x5, x6)))), x7, java.lang.Object(java.lang.String(0, x8, x9, x10)), java.lang.Object(java.lang.String(x11, x12, x13, x14)))
Load23142ARR8(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), NULL, x3)), java.lang.Object(List(x4, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), NULL, x3)))), x5, java.lang.Object(java.lang.String(0, x6, x7, x8)), java.lang.Object(java.lang.String(x9, x10, x11, x12)))
Cond_Load23142ARR8(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), NULL, x3)), java.lang.Object(List(x4, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), NULL, x3)))), x5, java.lang.Object(java.lang.String(0, x6, x7, x8)), java.lang.Object(java.lang.String(x9, x10, x11, x12)))
Load23142ARR9(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(x4, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), x5, x6)))), x7, java.lang.Object(java.lang.String(x8, x9, x10, x11)), java.lang.Object(java.lang.String(x12, x13, x14, x15)))
Cond_Load23142ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(x4, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), x5, x6)))), x7, java.lang.Object(java.lang.String(x8, x9, x10, x11)), java.lang.Object(java.lang.String(x12, x13, x14, x15)))
Load23142ARR10(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)), x3)), java.lang.Object(List(x4, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)), x3)))), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)), java.lang.Object(java.lang.String(x10, x11, x12, x13)))
Cond_Load23142ARR10(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)), x3)), java.lang.Object(List(x4, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, NULL)), java.lang.Object(Tree(NULL, NULL, NULL)), x3)))), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)), java.lang.Object(java.lang.String(x10, x11, x12, x13)))

(23) ITRSFilterProcessorProof (SOUND transformation)

We filter according the heuristic IdpCand1ShapeHeuristic
We removed arguments according to the following replacements:

Load23142(x1, x2, x3, x4, x5) → Load23142(x1, x2, x5)
Tree(x1, x2, x3) → Tree
List(x1, x2) → List
Load23142ARR3(x1, x2, x3, x4, x5, x6, x7) → Load23142ARR3(x1, x2, x5)
Cond_Load23142ARR3(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load23142ARR3(x1, x2, x3, x6)
New26117(x1, x2, x3, x4, x5) → New26117(x1, x2, x5)
Inc23250(x1, x2, x3, x4, x5) → Inc23250(x1, x2, x5)
Cond_Load23142(x1, x2, x3, x4, x5, x6) → Cond_Load23142(x1, x2, x3, x6)
Load23142ARR4(x1, x2, x3, x4, x5, x6, x7) → Load23142ARR4(x1, x2, x5)
Cond_Load23142ARR4(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load23142ARR4(x1, x2, x3, x6)
Load23142ARR5(x1, x2, x3, x4, x5, x6, x7) → Load23142ARR5(x1, x2, x5, x6)
Cond_Load23142ARR5(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load23142ARR5(x1, x2, x3, x6, x7)
Load23142ARR6(x1, x2, x3, x4, x5, x6, x7) → Load23142ARR6(x1, x2, x5, x6)
Cond_Load23142ARR6(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load23142ARR6(x1, x2, x3, x6, x7)
Load23142ARR7(x1, x2, x3, x4, x5, x6, x7) → Load23142ARR7(x1, x2, x5, x7)
Cond_Load23142ARR7(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load23142ARR7(x1, x2, x3, x6, x8)
Load23142ARR8(x1, x2, x3, x4, x5, x6, x7) → Load23142ARR8(x1, x2, x5, x7)
Cond_Load23142ARR8(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load23142ARR8(x1, x2, x3, x6, x8)
Load23142ARR9(x1, x2, x3, x4, x5, x6, x7) → Load23142ARR9(x1, x2, x5, x6, x7)
Cond_Load23142ARR9(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load23142ARR9(x1, x2, x3, x6, x7, x8)
Load23142ARR10(x1, x2, x3, x4, x5, x6, x7) → Load23142ARR10(x1, x2, x5, x6, x7)
Cond_Load23142ARR10(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load23142ARR10(x1, x2, x3, x6, x7, x8)

(24) Obligation:

ITRS problem:

The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean

The TRS R consists of the following rules:
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Load23142ARR3(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075)
Load23142ARR3(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Cond_Load23142ARR3(i6073 + 1 > 0 && i6073 + 1 < i3 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075)
Cond_Load23142ARR3(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → New26117(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, i6075)
Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075 + -1)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Cond_Load23142(i6075 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075)
Cond_Load23142(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075 + -1)
New26117(java.lang.Object(ARRAY(i3, a43225data)), i6885, i6075) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6885, i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Load23142ARR4(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075)
Load23142ARR4(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Cond_Load23142ARR4(i6073 + 1 > 0 && i6073 + 1 < i3 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075)
Cond_Load23142ARR4(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Load23142ARR5(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)))
Load23142ARR5(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215))) → Cond_Load23142ARR5(i7267 > 0 && i6073 + 1 > 0 && i6073 + 1 < i3 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)))
Cond_Load23142ARR5(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Load23142ARR6(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)))
Load23142ARR6(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215))) → Cond_Load23142ARR6(i7267 > 0 && i6073 + 1 > 0 && i6073 + 1 < i3 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)))
Cond_Load23142ARR6(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Load23142ARR7(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Load23142ARR7(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Cond_Load23142ARR7(i6073 + 1 > 0 && i6073 + 1 < i3 && i6444 > 0 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Cond_Load23142ARR7(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Load23142ARR8(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Load23142ARR8(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Cond_Load23142ARR8(i6073 + 1 > 0 && i6073 + 1 < i3 && i6444 > 0 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Cond_Load23142ARR8(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Load23142ARR9(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Load23142ARR9(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Cond_Load23142ARR9(i7793 > 0 && i6073 + 1 > 0 && i6073 + 1 < i3 && i6444 > 0 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Cond_Load23142ARR9(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Load23142ARR10(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Load23142ARR10(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Cond_Load23142ARR10(i7793 > 0 && i6073 + 1 > 0 && i6073 + 1 < i3 && i6444 > 0 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Cond_Load23142ARR10(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, i6075)
The set Q consists of the following terms:
Load23142(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR3(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
Inc23250(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
New26117(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR4(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142ARR4(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR5(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load23142ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Load23142ARR6(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load23142ARR6(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Load23142ARR7(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load23142ARR7(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Load23142ARR8(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load23142ARR8(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Load23142ARR9(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)), java.lang.Object(java.lang.String(x8, x9, x10, x11)))
Cond_Load23142ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)), java.lang.Object(java.lang.String(x8, x9, x10, x11)))
Load23142ARR10(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)), java.lang.Object(java.lang.String(x8, x9, x10, x11)))
Cond_Load23142ARR10(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)), java.lang.Object(java.lang.String(x8, x9, x10, x11)))

(25) ITRSFSMergerProof (SOUND transformation)

The following function symbols have been merged:

Load23142ARR5, Load23142ARR6
> Load23142ARR5_4

Cond_Load23142ARR5, Cond_Load23142ARR6
> Cond_Load23142ARR5_5

Load23142ARR7, Load23142ARR8
> Load23142ARR7_4

Cond_Load23142ARR7, Cond_Load23142ARR8
> Cond_Load23142ARR7_5

Load23142ARR9, Load23142ARR10
> Load23142ARR9_5

Cond_Load23142ARR9, Cond_Load23142ARR10
> Cond_Load23142ARR9_6

(26) Obligation:

ITRS problem:

The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean

The TRS R consists of the following rules:
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Load23142ARR3(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075)
Load23142ARR3(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Cond_Load23142ARR3(i6073 + 1 > 0 && i6073 + 1 < i3 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075)
Cond_Load23142ARR3(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → New26117(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, i6075)
Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075 + -1)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Cond_Load23142(i6075 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075)
Cond_Load23142(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075 + -1)
New26117(java.lang.Object(ARRAY(i3, a43225data)), i6885, i6075) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6885, i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Load23142ARR4(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075)
Load23142ARR4(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Cond_Load23142ARR4(i6073 + 1 > 0 && i6073 + 1 < i3 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075)
Cond_Load23142ARR4(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Load23142ARR5(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)))
Load23142ARR5(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215))) → Cond_Load23142ARR5(i7267 > 0 && i6073 + 1 > 0 && i6073 + 1 < i3 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)))
Cond_Load23142ARR5(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Load23142ARR7(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Load23142ARR7(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Cond_Load23142ARR7(i6073 + 1 > 0 && i6073 + 1 < i3 && i6444 > 0 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Cond_Load23142ARR7(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Load23142ARR9(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Load23142ARR9(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Cond_Load23142ARR9(i7793 > 0 && i6073 + 1 > 0 && i6073 + 1 < i3 && i6444 > 0 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Cond_Load23142ARR9(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, i6075)
The set Q consists of the following terms:
Load23142(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR3(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
Inc23250(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
New26117(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR4(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142ARR4(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR5(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load23142ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Load23142ARR7(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load23142ARR7(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Load23142ARR9(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)), java.lang.Object(java.lang.String(x8, x9, x10, x11)))
Cond_Load23142ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)), java.lang.Object(java.lang.String(x8, x9, x10, x11)))

(27) ITRStoIDPProof (EQUIVALENT transformation)

Added dependency pairs

(28) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


The ITRS R consists of the following rules:
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Load23142ARR3(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075)
Load23142ARR3(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Cond_Load23142ARR3(i6073 + 1 > 0 && i6073 + 1 < i3 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075)
Cond_Load23142ARR3(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → New26117(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, i6075)
Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075 + -1)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Cond_Load23142(i6075 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075)
Cond_Load23142(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075 + -1)
New26117(java.lang.Object(ARRAY(i3, a43225data)), i6885, i6075) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6885, i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Load23142ARR4(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075)
Load23142ARR4(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Cond_Load23142ARR4(i6073 + 1 > 0 && i6073 + 1 < i3 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075)
Cond_Load23142ARR4(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Load23142ARR5(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)))
Load23142ARR5(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215))) → Cond_Load23142ARR5(i7267 > 0 && i6073 + 1 > 0 && i6073 + 1 < i3 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)))
Cond_Load23142ARR5(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Load23142ARR7(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Load23142ARR7(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Cond_Load23142ARR7(i6073 + 1 > 0 && i6073 + 1 < i3 && i6444 > 0 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Cond_Load23142ARR7(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, i6075)
Load23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → Load23142ARR9(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Load23142ARR9(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Cond_Load23142ARR9(i7793 > 0 && i6073 + 1 > 0 && i6073 + 1 < i3 && i6444 > 0 && i6073 > 0 && i6073 < i3 && i6075 > 0 && i6073 + 1 + 1 > 0, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
Cond_Load23142ARR9(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → Inc23250(java.lang.Object(ARRAY(i3, a43225data)), i6073 + 1 + 1, i6075)

The integer pair graph contains the following rules and edges:
(0): LOAD23142(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0]) → LOAD23142ARR3(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0])
(1): LOAD23142ARR3(java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1]) → COND_LOAD23142ARR3(i6073[1] + 1 > 0 && i6073[1] + 1 < i3[1] && i6073[1] > 0 && i6073[1] < i3[1] && i6075[1] > 0 && i6073[1] + 1 + 1 > 0, java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1])
(2): COND_LOAD23142ARR3(TRUE, java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2], i6075[2]) → NEW26117(java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2] + 1 + 1, i6075[2])
(3): INC23250(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], i6075[3]) → LOAD23142(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], i6075[3] + -1)
(4): LOAD23142(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4]) → COND_LOAD23142(i6075[4] > 0, java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])
(5): COND_LOAD23142(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], i6075[5]) → LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], i6075[5] + -1)
(6): NEW26117(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6]) → INC23250(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6])
(7): LOAD23142(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7]) → LOAD23142ARR4(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7])
(8): LOAD23142ARR4(java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8]) → COND_LOAD23142ARR4(i6073[8] + 1 > 0 && i6073[8] + 1 < i3[8] && i6073[8] > 0 && i6073[8] < i3[8] && i6075[8] > 0 && i6073[8] + 1 + 1 > 0, java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8])
(9): COND_LOAD23142ARR4(TRUE, java.lang.Object(ARRAY(i3[9], a43225data[9])), i6073[9], i6075[9]) → INC23250(java.lang.Object(ARRAY(i3[9], a43225data[9])), i6073[9] + 1 + 1, i6075[9])
(10): LOAD23142(java.lang.Object(ARRAY(i3[10], a43225data[10])), i6073[10], i6075[10]) → LOAD23142ARR5(java.lang.Object(ARRAY(i3[10], a43225data[10])), i6073[10], i6075[10], java.lang.Object(java.lang.String(i7267[10], i7109[10], i7111[10], a47215[10])))
(11): LOAD23142ARR5(java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11]))) → COND_LOAD23142ARR5(i7267[11] > 0 && i6073[11] + 1 > 0 && i6073[11] + 1 < i3[11] && i6073[11] > 0 && i6073[11] < i3[11] && i6075[11] > 0 && i6073[11] + 1 + 1 > 0, java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))
(12): COND_LOAD23142ARR5(TRUE, java.lang.Object(ARRAY(i3[12], a43225data[12])), i6073[12], i6075[12], java.lang.Object(java.lang.String(i7267[12], i7109[12], i7111[12], a47215[12]))) → INC23250(java.lang.Object(ARRAY(i3[12], a43225data[12])), i6073[12] + 1 + 1, i6075[12])
(13): LOAD23142(java.lang.Object(ARRAY(i3[13], a43225data[13])), i6073[13], i6075[13]) → LOAD23142ARR7(java.lang.Object(ARRAY(i3[13], a43225data[13])), i6073[13], i6075[13], java.lang.Object(java.lang.String(i6444[13], i6342[13], i6344[13], a44494[13])))
(14): LOAD23142ARR7(java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14]))) → COND_LOAD23142ARR7(i6073[14] + 1 > 0 && i6073[14] + 1 < i3[14] && i6444[14] > 0 && i6073[14] > 0 && i6073[14] < i3[14] && i6075[14] > 0 && i6073[14] + 1 + 1 > 0, java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))
(15): COND_LOAD23142ARR7(TRUE, java.lang.Object(ARRAY(i3[15], a43225data[15])), i6073[15], i6075[15], java.lang.Object(java.lang.String(i6444[15], i6342[15], i6344[15], a44494[15]))) → INC23250(java.lang.Object(ARRAY(i3[15], a43225data[15])), i6073[15] + 1 + 1, i6075[15])
(16): LOAD23142(java.lang.Object(ARRAY(i3[16], a43225data[16])), i6073[16], i6075[16]) → LOAD23142ARR9(java.lang.Object(ARRAY(i3[16], a43225data[16])), i6073[16], i6075[16], java.lang.Object(java.lang.String(i7793[16], i7574[16], i7576[16], a48595[16])), java.lang.Object(java.lang.String(i6444[16], i6342[16], i6344[16], a44494[16])))
(17): LOAD23142ARR9(java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17]))) → COND_LOAD23142ARR9(i7793[17] > 0 && i6073[17] + 1 > 0 && i6073[17] + 1 < i3[17] && i6444[17] > 0 && i6073[17] > 0 && i6073[17] < i3[17] && i6075[17] > 0 && i6073[17] + 1 + 1 > 0, java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))
(18): COND_LOAD23142ARR9(TRUE, java.lang.Object(ARRAY(i3[18], a43225data[18])), i6073[18], i6075[18], java.lang.Object(java.lang.String(i7793[18], i7574[18], i7576[18], a48595[18])), java.lang.Object(java.lang.String(i6444[18], i6342[18], i6344[18], a44494[18]))) → INC23250(java.lang.Object(ARRAY(i3[18], a43225data[18])), i6073[18] + 1 + 1, i6075[18])

(0) -> (1), if ((i6073[0]* i6073[1])∧(java.lang.Object(ARRAY(i3[0], a43225data[0])) →* java.lang.Object(ARRAY(i3[1], a43225data[1])))∧(i6075[0]* i6075[1]))


(1) -> (2), if ((java.lang.Object(ARRAY(i3[1], a43225data[1])) →* java.lang.Object(ARRAY(i3[2], a43225data[2])))∧(i6075[1]* i6075[2])∧(i6073[1]* i6073[2])∧(i6073[1] + 1 > 0 && i6073[1] + 1 < i3[1] && i6073[1] > 0 && i6073[1] < i3[1] && i6075[1] > 0 && i6073[1] + 1 + 1 > 0* TRUE))


(2) -> (6), if ((java.lang.Object(ARRAY(i3[2], a43225data[2])) →* java.lang.Object(ARRAY(i3[6], a43225data[6])))∧(i6075[2]* i6075[6])∧(i6073[2] + 1 + 1* i6885[6]))


(3) -> (0), if ((java.lang.Object(ARRAY(i3[3], a43225data[3])) →* java.lang.Object(ARRAY(i3[0], a43225data[0])))∧(i6073[3]* i6073[0])∧(i6075[3] + -1* i6075[0]))


(3) -> (4), if ((i6075[3] + -1* i6075[4])∧(java.lang.Object(ARRAY(i3[3], a43225data[3])) →* java.lang.Object(ARRAY(i3[4], a43225data[4])))∧(i6073[3]* i6073[4]))


(3) -> (7), if ((i6075[3] + -1* i6075[7])∧(java.lang.Object(ARRAY(i3[3], a43225data[3])) →* java.lang.Object(ARRAY(i3[7], a43225data[7])))∧(i6073[3]* i6073[7]))


(3) -> (10), if ((i6075[3] + -1* i6075[10])∧(java.lang.Object(ARRAY(i3[3], a43225data[3])) →* java.lang.Object(ARRAY(i3[10], a43225data[10])))∧(i6073[3]* i6073[10]))


(3) -> (13), if ((i6075[3] + -1* i6075[13])∧(i6073[3]* i6073[13])∧(java.lang.Object(ARRAY(i3[3], a43225data[3])) →* java.lang.Object(ARRAY(i3[13], a43225data[13]))))


(3) -> (16), if ((i6075[3] + -1* i6075[16])∧(java.lang.Object(ARRAY(i3[3], a43225data[3])) →* java.lang.Object(ARRAY(i3[16], a43225data[16])))∧(i6073[3]* i6073[16]))


(4) -> (5), if ((i6073[4]* i6073[5])∧(i6075[4] > 0* TRUE)∧(i6075[4]* i6075[5])∧(java.lang.Object(ARRAY(i3[4], a43225data[4])) →* java.lang.Object(ARRAY(i3[5], a43225data[5]))))


(5) -> (0), if ((i6073[5]* i6073[0])∧(java.lang.Object(ARRAY(i3[5], a43225data[5])) →* java.lang.Object(ARRAY(i3[0], a43225data[0])))∧(i6075[5] + -1* i6075[0]))


(5) -> (4), if ((java.lang.Object(ARRAY(i3[5], a43225data[5])) →* java.lang.Object(ARRAY(i3[4], a43225data[4])))∧(i6073[5]* i6073[4])∧(i6075[5] + -1* i6075[4]))


(5) -> (7), if ((i6073[5]* i6073[7])∧(i6075[5] + -1* i6075[7])∧(java.lang.Object(ARRAY(i3[5], a43225data[5])) →* java.lang.Object(ARRAY(i3[7], a43225data[7]))))


(5) -> (10), if ((java.lang.Object(ARRAY(i3[5], a43225data[5])) →* java.lang.Object(ARRAY(i3[10], a43225data[10])))∧(i6075[5] + -1* i6075[10])∧(i6073[5]* i6073[10]))


(5) -> (13), if ((i6075[5] + -1* i6075[13])∧(i6073[5]* i6073[13])∧(java.lang.Object(ARRAY(i3[5], a43225data[5])) →* java.lang.Object(ARRAY(i3[13], a43225data[13]))))


(5) -> (16), if ((i6073[5]* i6073[16])∧(i6075[5] + -1* i6075[16])∧(java.lang.Object(ARRAY(i3[5], a43225data[5])) →* java.lang.Object(ARRAY(i3[16], a43225data[16]))))


(6) -> (3), if ((java.lang.Object(ARRAY(i3[6], a43225data[6])) →* java.lang.Object(ARRAY(i3[3], a43225data[3])))∧(i6885[6]* i6073[3])∧(i6075[6]* i6075[3]))


(7) -> (8), if ((java.lang.Object(ARRAY(i3[7], a43225data[7])) →* java.lang.Object(ARRAY(i3[8], a43225data[8])))∧(i6073[7]* i6073[8])∧(i6075[7]* i6075[8]))


(8) -> (9), if ((i6073[8]* i6073[9])∧(i6073[8] + 1 > 0 && i6073[8] + 1 < i3[8] && i6073[8] > 0 && i6073[8] < i3[8] && i6075[8] > 0 && i6073[8] + 1 + 1 > 0* TRUE)∧(i6075[8]* i6075[9])∧(java.lang.Object(ARRAY(i3[8], a43225data[8])) →* java.lang.Object(ARRAY(i3[9], a43225data[9]))))


(9) -> (3), if ((i6073[9] + 1 + 1* i6073[3])∧(i6075[9]* i6075[3])∧(java.lang.Object(ARRAY(i3[9], a43225data[9])) →* java.lang.Object(ARRAY(i3[3], a43225data[3]))))


(10) -> (11), if ((java.lang.Object(ARRAY(i3[10], a43225data[10])) →* java.lang.Object(ARRAY(i3[11], a43225data[11])))∧(java.lang.Object(java.lang.String(i7267[10], i7109[10], i7111[10], a47215[10])) →* java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))∧(i6075[10]* i6075[11])∧(i6073[10]* i6073[11]))


(11) -> (12), if ((i6075[11]* i6075[12])∧(i7267[11] > 0 && i6073[11] + 1 > 0 && i6073[11] + 1 < i3[11] && i6073[11] > 0 && i6073[11] < i3[11] && i6075[11] > 0 && i6073[11] + 1 + 1 > 0* TRUE)∧(java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])) →* java.lang.Object(java.lang.String(i7267[12], i7109[12], i7111[12], a47215[12])))∧(i6073[11]* i6073[12])∧(java.lang.Object(ARRAY(i3[11], a43225data[11])) →* java.lang.Object(ARRAY(i3[12], a43225data[12]))))


(12) -> (3), if ((java.lang.Object(ARRAY(i3[12], a43225data[12])) →* java.lang.Object(ARRAY(i3[3], a43225data[3])))∧(i6073[12] + 1 + 1* i6073[3])∧(i6075[12]* i6075[3]))


(13) -> (14), if ((java.lang.Object(java.lang.String(i6444[13], i6342[13], i6344[13], a44494[13])) →* java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))∧(i6073[13]* i6073[14])∧(i6075[13]* i6075[14])∧(java.lang.Object(ARRAY(i3[13], a43225data[13])) →* java.lang.Object(ARRAY(i3[14], a43225data[14]))))


(14) -> (15), if ((i6073[14]* i6073[15])∧(i6073[14] + 1 > 0 && i6073[14] + 1 < i3[14] && i6444[14] > 0 && i6073[14] > 0 && i6073[14] < i3[14] && i6075[14] > 0 && i6073[14] + 1 + 1 > 0* TRUE)∧(i6075[14]* i6075[15])∧(java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])) →* java.lang.Object(java.lang.String(i6444[15], i6342[15], i6344[15], a44494[15])))∧(java.lang.Object(ARRAY(i3[14], a43225data[14])) →* java.lang.Object(ARRAY(i3[15], a43225data[15]))))


(15) -> (3), if ((i6073[15] + 1 + 1* i6073[3])∧(java.lang.Object(ARRAY(i3[15], a43225data[15])) →* java.lang.Object(ARRAY(i3[3], a43225data[3])))∧(i6075[15]* i6075[3]))


(16) -> (17), if ((java.lang.Object(java.lang.String(i7793[16], i7574[16], i7576[16], a48595[16])) →* java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])))∧(java.lang.Object(ARRAY(i3[16], a43225data[16])) →* java.lang.Object(ARRAY(i3[17], a43225data[17])))∧(i6075[16]* i6075[17])∧(java.lang.Object(java.lang.String(i6444[16], i6342[16], i6344[16], a44494[16])) →* java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))∧(i6073[16]* i6073[17]))


(17) -> (18), if ((java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])) →* java.lang.Object(java.lang.String(i7793[18], i7574[18], i7576[18], a48595[18])))∧(java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])) →* java.lang.Object(java.lang.String(i6444[18], i6342[18], i6344[18], a44494[18])))∧(i7793[17] > 0 && i6073[17] + 1 > 0 && i6073[17] + 1 < i3[17] && i6444[17] > 0 && i6073[17] > 0 && i6073[17] < i3[17] && i6075[17] > 0 && i6073[17] + 1 + 1 > 0* TRUE)∧(java.lang.Object(ARRAY(i3[17], a43225data[17])) →* java.lang.Object(ARRAY(i3[18], a43225data[18])))∧(i6075[17]* i6075[18])∧(i6073[17]* i6073[18]))


(18) -> (3), if ((i6073[18] + 1 + 1* i6073[3])∧(java.lang.Object(ARRAY(i3[18], a43225data[18])) →* java.lang.Object(ARRAY(i3[3], a43225data[3])))∧(i6075[18]* i6075[3]))



The set Q consists of the following terms:
Load23142(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR3(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
Inc23250(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
New26117(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR4(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142ARR4(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR5(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load23142ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Load23142ARR7(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load23142ARR7(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Load23142ARR9(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)), java.lang.Object(java.lang.String(x8, x9, x10, x11)))
Cond_Load23142ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)), java.lang.Object(java.lang.String(x8, x9, x10, x11)))

(29) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(30) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD23142(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0]) → LOAD23142ARR3(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0])
(1): LOAD23142ARR3(java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1]) → COND_LOAD23142ARR3(i6073[1] + 1 > 0 && i6073[1] + 1 < i3[1] && i6073[1] > 0 && i6073[1] < i3[1] && i6075[1] > 0 && i6073[1] + 1 + 1 > 0, java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1])
(2): COND_LOAD23142ARR3(TRUE, java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2], i6075[2]) → NEW26117(java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2] + 1 + 1, i6075[2])
(3): INC23250(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], i6075[3]) → LOAD23142(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], i6075[3] + -1)
(4): LOAD23142(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4]) → COND_LOAD23142(i6075[4] > 0, java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])
(5): COND_LOAD23142(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], i6075[5]) → LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], i6075[5] + -1)
(6): NEW26117(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6]) → INC23250(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6])
(7): LOAD23142(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7]) → LOAD23142ARR4(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7])
(8): LOAD23142ARR4(java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8]) → COND_LOAD23142ARR4(i6073[8] + 1 > 0 && i6073[8] + 1 < i3[8] && i6073[8] > 0 && i6073[8] < i3[8] && i6075[8] > 0 && i6073[8] + 1 + 1 > 0, java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8])
(9): COND_LOAD23142ARR4(TRUE, java.lang.Object(ARRAY(i3[9], a43225data[9])), i6073[9], i6075[9]) → INC23250(java.lang.Object(ARRAY(i3[9], a43225data[9])), i6073[9] + 1 + 1, i6075[9])
(10): LOAD23142(java.lang.Object(ARRAY(i3[10], a43225data[10])), i6073[10], i6075[10]) → LOAD23142ARR5(java.lang.Object(ARRAY(i3[10], a43225data[10])), i6073[10], i6075[10], java.lang.Object(java.lang.String(i7267[10], i7109[10], i7111[10], a47215[10])))
(11): LOAD23142ARR5(java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11]))) → COND_LOAD23142ARR5(i7267[11] > 0 && i6073[11] + 1 > 0 && i6073[11] + 1 < i3[11] && i6073[11] > 0 && i6073[11] < i3[11] && i6075[11] > 0 && i6073[11] + 1 + 1 > 0, java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))
(12): COND_LOAD23142ARR5(TRUE, java.lang.Object(ARRAY(i3[12], a43225data[12])), i6073[12], i6075[12], java.lang.Object(java.lang.String(i7267[12], i7109[12], i7111[12], a47215[12]))) → INC23250(java.lang.Object(ARRAY(i3[12], a43225data[12])), i6073[12] + 1 + 1, i6075[12])
(13): LOAD23142(java.lang.Object(ARRAY(i3[13], a43225data[13])), i6073[13], i6075[13]) → LOAD23142ARR7(java.lang.Object(ARRAY(i3[13], a43225data[13])), i6073[13], i6075[13], java.lang.Object(java.lang.String(i6444[13], i6342[13], i6344[13], a44494[13])))
(14): LOAD23142ARR7(java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14]))) → COND_LOAD23142ARR7(i6073[14] + 1 > 0 && i6073[14] + 1 < i3[14] && i6444[14] > 0 && i6073[14] > 0 && i6073[14] < i3[14] && i6075[14] > 0 && i6073[14] + 1 + 1 > 0, java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))
(15): COND_LOAD23142ARR7(TRUE, java.lang.Object(ARRAY(i3[15], a43225data[15])), i6073[15], i6075[15], java.lang.Object(java.lang.String(i6444[15], i6342[15], i6344[15], a44494[15]))) → INC23250(java.lang.Object(ARRAY(i3[15], a43225data[15])), i6073[15] + 1 + 1, i6075[15])
(16): LOAD23142(java.lang.Object(ARRAY(i3[16], a43225data[16])), i6073[16], i6075[16]) → LOAD23142ARR9(java.lang.Object(ARRAY(i3[16], a43225data[16])), i6073[16], i6075[16], java.lang.Object(java.lang.String(i7793[16], i7574[16], i7576[16], a48595[16])), java.lang.Object(java.lang.String(i6444[16], i6342[16], i6344[16], a44494[16])))
(17): LOAD23142ARR9(java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17]))) → COND_LOAD23142ARR9(i7793[17] > 0 && i6073[17] + 1 > 0 && i6073[17] + 1 < i3[17] && i6444[17] > 0 && i6073[17] > 0 && i6073[17] < i3[17] && i6075[17] > 0 && i6073[17] + 1 + 1 > 0, java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))
(18): COND_LOAD23142ARR9(TRUE, java.lang.Object(ARRAY(i3[18], a43225data[18])), i6073[18], i6075[18], java.lang.Object(java.lang.String(i7793[18], i7574[18], i7576[18], a48595[18])), java.lang.Object(java.lang.String(i6444[18], i6342[18], i6344[18], a44494[18]))) → INC23250(java.lang.Object(ARRAY(i3[18], a43225data[18])), i6073[18] + 1 + 1, i6075[18])

(0) -> (1), if ((i6073[0]* i6073[1])∧(java.lang.Object(ARRAY(i3[0], a43225data[0])) →* java.lang.Object(ARRAY(i3[1], a43225data[1])))∧(i6075[0]* i6075[1]))


(1) -> (2), if ((java.lang.Object(ARRAY(i3[1], a43225data[1])) →* java.lang.Object(ARRAY(i3[2], a43225data[2])))∧(i6075[1]* i6075[2])∧(i6073[1]* i6073[2])∧(i6073[1] + 1 > 0 && i6073[1] + 1 < i3[1] && i6073[1] > 0 && i6073[1] < i3[1] && i6075[1] > 0 && i6073[1] + 1 + 1 > 0* TRUE))


(2) -> (6), if ((java.lang.Object(ARRAY(i3[2], a43225data[2])) →* java.lang.Object(ARRAY(i3[6], a43225data[6])))∧(i6075[2]* i6075[6])∧(i6073[2] + 1 + 1* i6885[6]))


(3) -> (0), if ((java.lang.Object(ARRAY(i3[3], a43225data[3])) →* java.lang.Object(ARRAY(i3[0], a43225data[0])))∧(i6073[3]* i6073[0])∧(i6075[3] + -1* i6075[0]))


(3) -> (4), if ((i6075[3] + -1* i6075[4])∧(java.lang.Object(ARRAY(i3[3], a43225data[3])) →* java.lang.Object(ARRAY(i3[4], a43225data[4])))∧(i6073[3]* i6073[4]))


(3) -> (7), if ((i6075[3] + -1* i6075[7])∧(java.lang.Object(ARRAY(i3[3], a43225data[3])) →* java.lang.Object(ARRAY(i3[7], a43225data[7])))∧(i6073[3]* i6073[7]))


(3) -> (10), if ((i6075[3] + -1* i6075[10])∧(java.lang.Object(ARRAY(i3[3], a43225data[3])) →* java.lang.Object(ARRAY(i3[10], a43225data[10])))∧(i6073[3]* i6073[10]))


(3) -> (13), if ((i6075[3] + -1* i6075[13])∧(i6073[3]* i6073[13])∧(java.lang.Object(ARRAY(i3[3], a43225data[3])) →* java.lang.Object(ARRAY(i3[13], a43225data[13]))))


(3) -> (16), if ((i6075[3] + -1* i6075[16])∧(java.lang.Object(ARRAY(i3[3], a43225data[3])) →* java.lang.Object(ARRAY(i3[16], a43225data[16])))∧(i6073[3]* i6073[16]))


(4) -> (5), if ((i6073[4]* i6073[5])∧(i6075[4] > 0* TRUE)∧(i6075[4]* i6075[5])∧(java.lang.Object(ARRAY(i3[4], a43225data[4])) →* java.lang.Object(ARRAY(i3[5], a43225data[5]))))


(5) -> (0), if ((i6073[5]* i6073[0])∧(java.lang.Object(ARRAY(i3[5], a43225data[5])) →* java.lang.Object(ARRAY(i3[0], a43225data[0])))∧(i6075[5] + -1* i6075[0]))


(5) -> (4), if ((java.lang.Object(ARRAY(i3[5], a43225data[5])) →* java.lang.Object(ARRAY(i3[4], a43225data[4])))∧(i6073[5]* i6073[4])∧(i6075[5] + -1* i6075[4]))


(5) -> (7), if ((i6073[5]* i6073[7])∧(i6075[5] + -1* i6075[7])∧(java.lang.Object(ARRAY(i3[5], a43225data[5])) →* java.lang.Object(ARRAY(i3[7], a43225data[7]))))


(5) -> (10), if ((java.lang.Object(ARRAY(i3[5], a43225data[5])) →* java.lang.Object(ARRAY(i3[10], a43225data[10])))∧(i6075[5] + -1* i6075[10])∧(i6073[5]* i6073[10]))


(5) -> (13), if ((i6075[5] + -1* i6075[13])∧(i6073[5]* i6073[13])∧(java.lang.Object(ARRAY(i3[5], a43225data[5])) →* java.lang.Object(ARRAY(i3[13], a43225data[13]))))


(5) -> (16), if ((i6073[5]* i6073[16])∧(i6075[5] + -1* i6075[16])∧(java.lang.Object(ARRAY(i3[5], a43225data[5])) →* java.lang.Object(ARRAY(i3[16], a43225data[16]))))


(6) -> (3), if ((java.lang.Object(ARRAY(i3[6], a43225data[6])) →* java.lang.Object(ARRAY(i3[3], a43225data[3])))∧(i6885[6]* i6073[3])∧(i6075[6]* i6075[3]))


(7) -> (8), if ((java.lang.Object(ARRAY(i3[7], a43225data[7])) →* java.lang.Object(ARRAY(i3[8], a43225data[8])))∧(i6073[7]* i6073[8])∧(i6075[7]* i6075[8]))


(8) -> (9), if ((i6073[8]* i6073[9])∧(i6073[8] + 1 > 0 && i6073[8] + 1 < i3[8] && i6073[8] > 0 && i6073[8] < i3[8] && i6075[8] > 0 && i6073[8] + 1 + 1 > 0* TRUE)∧(i6075[8]* i6075[9])∧(java.lang.Object(ARRAY(i3[8], a43225data[8])) →* java.lang.Object(ARRAY(i3[9], a43225data[9]))))


(9) -> (3), if ((i6073[9] + 1 + 1* i6073[3])∧(i6075[9]* i6075[3])∧(java.lang.Object(ARRAY(i3[9], a43225data[9])) →* java.lang.Object(ARRAY(i3[3], a43225data[3]))))


(10) -> (11), if ((java.lang.Object(ARRAY(i3[10], a43225data[10])) →* java.lang.Object(ARRAY(i3[11], a43225data[11])))∧(java.lang.Object(java.lang.String(i7267[10], i7109[10], i7111[10], a47215[10])) →* java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))∧(i6075[10]* i6075[11])∧(i6073[10]* i6073[11]))


(11) -> (12), if ((i6075[11]* i6075[12])∧(i7267[11] > 0 && i6073[11] + 1 > 0 && i6073[11] + 1 < i3[11] && i6073[11] > 0 && i6073[11] < i3[11] && i6075[11] > 0 && i6073[11] + 1 + 1 > 0* TRUE)∧(java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])) →* java.lang.Object(java.lang.String(i7267[12], i7109[12], i7111[12], a47215[12])))∧(i6073[11]* i6073[12])∧(java.lang.Object(ARRAY(i3[11], a43225data[11])) →* java.lang.Object(ARRAY(i3[12], a43225data[12]))))


(12) -> (3), if ((java.lang.Object(ARRAY(i3[12], a43225data[12])) →* java.lang.Object(ARRAY(i3[3], a43225data[3])))∧(i6073[12] + 1 + 1* i6073[3])∧(i6075[12]* i6075[3]))


(13) -> (14), if ((java.lang.Object(java.lang.String(i6444[13], i6342[13], i6344[13], a44494[13])) →* java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))∧(i6073[13]* i6073[14])∧(i6075[13]* i6075[14])∧(java.lang.Object(ARRAY(i3[13], a43225data[13])) →* java.lang.Object(ARRAY(i3[14], a43225data[14]))))


(14) -> (15), if ((i6073[14]* i6073[15])∧(i6073[14] + 1 > 0 && i6073[14] + 1 < i3[14] && i6444[14] > 0 && i6073[14] > 0 && i6073[14] < i3[14] && i6075[14] > 0 && i6073[14] + 1 + 1 > 0* TRUE)∧(i6075[14]* i6075[15])∧(java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])) →* java.lang.Object(java.lang.String(i6444[15], i6342[15], i6344[15], a44494[15])))∧(java.lang.Object(ARRAY(i3[14], a43225data[14])) →* java.lang.Object(ARRAY(i3[15], a43225data[15]))))


(15) -> (3), if ((i6073[15] + 1 + 1* i6073[3])∧(java.lang.Object(ARRAY(i3[15], a43225data[15])) →* java.lang.Object(ARRAY(i3[3], a43225data[3])))∧(i6075[15]* i6075[3]))


(16) -> (17), if ((java.lang.Object(java.lang.String(i7793[16], i7574[16], i7576[16], a48595[16])) →* java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])))∧(java.lang.Object(ARRAY(i3[16], a43225data[16])) →* java.lang.Object(ARRAY(i3[17], a43225data[17])))∧(i6075[16]* i6075[17])∧(java.lang.Object(java.lang.String(i6444[16], i6342[16], i6344[16], a44494[16])) →* java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))∧(i6073[16]* i6073[17]))


(17) -> (18), if ((java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])) →* java.lang.Object(java.lang.String(i7793[18], i7574[18], i7576[18], a48595[18])))∧(java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])) →* java.lang.Object(java.lang.String(i6444[18], i6342[18], i6344[18], a44494[18])))∧(i7793[17] > 0 && i6073[17] + 1 > 0 && i6073[17] + 1 < i3[17] && i6444[17] > 0 && i6073[17] > 0 && i6073[17] < i3[17] && i6075[17] > 0 && i6073[17] + 1 + 1 > 0* TRUE)∧(java.lang.Object(ARRAY(i3[17], a43225data[17])) →* java.lang.Object(ARRAY(i3[18], a43225data[18])))∧(i6075[17]* i6075[18])∧(i6073[17]* i6073[18]))


(18) -> (3), if ((i6073[18] + 1 + 1* i6073[3])∧(java.lang.Object(ARRAY(i3[18], a43225data[18])) →* java.lang.Object(ARRAY(i3[3], a43225data[3])))∧(i6075[18]* i6075[3]))



The set Q consists of the following terms:
Load23142(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR3(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
Inc23250(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
New26117(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR4(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142ARR4(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR5(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load23142ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Load23142ARR7(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load23142ARR7(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Load23142ARR9(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)), java.lang.Object(java.lang.String(x8, x9, x10, x11)))
Cond_Load23142ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)), java.lang.Object(java.lang.String(x8, x9, x10, x11)))

(31) ItpfGraphProof (EQUIVALENT transformation)

Applied rule ItpfICap [ICap]

(32) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD23142(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0]) → LOAD23142ARR3(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0])
(1): LOAD23142ARR3(java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1]) → COND_LOAD23142ARR3(i6073[1] + 1 > 0 && i6073[1] + 1 < i3[1] && i6073[1] > 0 && i6073[1] < i3[1] && i6075[1] > 0 && i6073[1] + 1 + 1 > 0, java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1])
(2): COND_LOAD23142ARR3(TRUE, java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2], i6075[2]) → NEW26117(java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2] + 1 + 1, i6075[2])
(3): INC23250(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], i6075[3]) → LOAD23142(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], i6075[3] + -1)
(4): LOAD23142(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4]) → COND_LOAD23142(i6075[4] > 0, java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])
(5): COND_LOAD23142(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], i6075[5]) → LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], i6075[5] + -1)
(6): NEW26117(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6]) → INC23250(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6])
(7): LOAD23142(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7]) → LOAD23142ARR4(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7])
(8): LOAD23142ARR4(java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8]) → COND_LOAD23142ARR4(i6073[8] + 1 > 0 && i6073[8] + 1 < i3[8] && i6073[8] > 0 && i6073[8] < i3[8] && i6075[8] > 0 && i6073[8] + 1 + 1 > 0, java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8])
(9): COND_LOAD23142ARR4(TRUE, java.lang.Object(ARRAY(i3[9], a43225data[9])), i6073[9], i6075[9]) → INC23250(java.lang.Object(ARRAY(i3[9], a43225data[9])), i6073[9] + 1 + 1, i6075[9])
(10): LOAD23142(java.lang.Object(ARRAY(i3[10], a43225data[10])), i6073[10], i6075[10]) → LOAD23142ARR5(java.lang.Object(ARRAY(i3[10], a43225data[10])), i6073[10], i6075[10], java.lang.Object(java.lang.String(i7267[10], i7109[10], i7111[10], a47215[10])))
(11): LOAD23142ARR5(java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11]))) → COND_LOAD23142ARR5(i7267[11] > 0 && i6073[11] + 1 > 0 && i6073[11] + 1 < i3[11] && i6073[11] > 0 && i6073[11] < i3[11] && i6075[11] > 0 && i6073[11] + 1 + 1 > 0, java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))
(12): COND_LOAD23142ARR5(TRUE, java.lang.Object(ARRAY(i3[12], a43225data[12])), i6073[12], i6075[12], java.lang.Object(java.lang.String(i7267[12], i7109[12], i7111[12], a47215[12]))) → INC23250(java.lang.Object(ARRAY(i3[12], a43225data[12])), i6073[12] + 1 + 1, i6075[12])
(13): LOAD23142(java.lang.Object(ARRAY(i3[13], a43225data[13])), i6073[13], i6075[13]) → LOAD23142ARR7(java.lang.Object(ARRAY(i3[13], a43225data[13])), i6073[13], i6075[13], java.lang.Object(java.lang.String(i6444[13], i6342[13], i6344[13], a44494[13])))
(14): LOAD23142ARR7(java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14]))) → COND_LOAD23142ARR7(i6073[14] + 1 > 0 && i6073[14] + 1 < i3[14] && i6444[14] > 0 && i6073[14] > 0 && i6073[14] < i3[14] && i6075[14] > 0 && i6073[14] + 1 + 1 > 0, java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))
(15): COND_LOAD23142ARR7(TRUE, java.lang.Object(ARRAY(i3[15], a43225data[15])), i6073[15], i6075[15], java.lang.Object(java.lang.String(i6444[15], i6342[15], i6344[15], a44494[15]))) → INC23250(java.lang.Object(ARRAY(i3[15], a43225data[15])), i6073[15] + 1 + 1, i6075[15])
(16): LOAD23142(java.lang.Object(ARRAY(i3[16], a43225data[16])), i6073[16], i6075[16]) → LOAD23142ARR9(java.lang.Object(ARRAY(i3[16], a43225data[16])), i6073[16], i6075[16], java.lang.Object(java.lang.String(i7793[16], i7574[16], i7576[16], a48595[16])), java.lang.Object(java.lang.String(i6444[16], i6342[16], i6344[16], a44494[16])))
(17): LOAD23142ARR9(java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17]))) → COND_LOAD23142ARR9(i7793[17] > 0 && i6073[17] + 1 > 0 && i6073[17] + 1 < i3[17] && i6444[17] > 0 && i6073[17] > 0 && i6073[17] < i3[17] && i6075[17] > 0 && i6073[17] + 1 + 1 > 0, java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))
(18): COND_LOAD23142ARR9(TRUE, java.lang.Object(ARRAY(i3[18], a43225data[18])), i6073[18], i6075[18], java.lang.Object(java.lang.String(i7793[18], i7574[18], i7576[18], a48595[18])), java.lang.Object(java.lang.String(i6444[18], i6342[18], i6344[18], a44494[18]))) → INC23250(java.lang.Object(ARRAY(i3[18], a43225data[18])), i6073[18] + 1 + 1, i6075[18])

(0) -> (1), if ((i6073[0]* i6073[1])∧((i3[0]* i3[1])∧(a43225data[0]* a43225data[1]))∧(i6075[0]* i6075[1]))


(1) -> (2), if (((i3[1]* i3[2])∧(a43225data[1]* a43225data[2]))∧(i6075[1]* i6075[2])∧(i6073[1]* i6073[2])∧(i6073[1] + 1 > 0 && i6073[1] + 1 < i3[1] && i6073[1] > 0 && i6073[1] < i3[1] && i6075[1] > 0 && i6073[1] + 1 + 1 > 0* TRUE))


(2) -> (6), if (((i3[2]* i3[6])∧(a43225data[2]* a43225data[6]))∧(i6075[2]* i6075[6])∧(i6073[2] + 1 + 1* i6885[6]))


(3) -> (0), if (((i3[3]* i3[0])∧(a43225data[3]* a43225data[0]))∧(i6073[3]* i6073[0])∧(i6075[3] + -1* i6075[0]))


(3) -> (4), if ((i6075[3] + -1* i6075[4])∧((i3[3]* i3[4])∧(a43225data[3]* a43225data[4]))∧(i6073[3]* i6073[4]))


(3) -> (7), if ((i6075[3] + -1* i6075[7])∧((i3[3]* i3[7])∧(a43225data[3]* a43225data[7]))∧(i6073[3]* i6073[7]))


(3) -> (10), if ((i6075[3] + -1* i6075[10])∧((i3[3]* i3[10])∧(a43225data[3]* a43225data[10]))∧(i6073[3]* i6073[10]))


(3) -> (13), if ((i6075[3] + -1* i6075[13])∧(i6073[3]* i6073[13])∧((i3[3]* i3[13])∧(a43225data[3]* a43225data[13])))


(3) -> (16), if ((i6075[3] + -1* i6075[16])∧((i3[3]* i3[16])∧(a43225data[3]* a43225data[16]))∧(i6073[3]* i6073[16]))


(4) -> (5), if ((i6073[4]* i6073[5])∧(i6075[4] > 0* TRUE)∧(i6075[4]* i6075[5])∧((i3[4]* i3[5])∧(a43225data[4]* a43225data[5])))


(5) -> (0), if ((i6073[5]* i6073[0])∧((i3[5]* i3[0])∧(a43225data[5]* a43225data[0]))∧(i6075[5] + -1* i6075[0]))


(5) -> (4), if (((i3[5]* i3[4])∧(a43225data[5]* a43225data[4]))∧(i6073[5]* i6073[4])∧(i6075[5] + -1* i6075[4]))


(5) -> (7), if ((i6073[5]* i6073[7])∧(i6075[5] + -1* i6075[7])∧((i3[5]* i3[7])∧(a43225data[5]* a43225data[7])))


(5) -> (10), if (((i3[5]* i3[10])∧(a43225data[5]* a43225data[10]))∧(i6075[5] + -1* i6075[10])∧(i6073[5]* i6073[10]))


(5) -> (13), if ((i6075[5] + -1* i6075[13])∧(i6073[5]* i6073[13])∧((i3[5]* i3[13])∧(a43225data[5]* a43225data[13])))


(5) -> (16), if ((i6073[5]* i6073[16])∧(i6075[5] + -1* i6075[16])∧((i3[5]* i3[16])∧(a43225data[5]* a43225data[16])))


(6) -> (3), if (((i3[6]* i3[3])∧(a43225data[6]* a43225data[3]))∧(i6885[6]* i6073[3])∧(i6075[6]* i6075[3]))


(7) -> (8), if (((i3[7]* i3[8])∧(a43225data[7]* a43225data[8]))∧(i6073[7]* i6073[8])∧(i6075[7]* i6075[8]))


(8) -> (9), if ((i6073[8]* i6073[9])∧(i6073[8] + 1 > 0 && i6073[8] + 1 < i3[8] && i6073[8] > 0 && i6073[8] < i3[8] && i6075[8] > 0 && i6073[8] + 1 + 1 > 0* TRUE)∧(i6075[8]* i6075[9])∧((i3[8]* i3[9])∧(a43225data[8]* a43225data[9])))


(9) -> (3), if ((i6073[9] + 1 + 1* i6073[3])∧(i6075[9]* i6075[3])∧((i3[9]* i3[3])∧(a43225data[9]* a43225data[3])))


(10) -> (11), if (((i3[10]* i3[11])∧(a43225data[10]* a43225data[11]))∧((i7267[10]* i7267[11])∧(i7109[10]* i7109[11])∧(i7111[10]* i7111[11])∧(a47215[10]* a47215[11]))∧(i6075[10]* i6075[11])∧(i6073[10]* i6073[11]))


(11) -> (12), if ((i6075[11]* i6075[12])∧(i7267[11] > 0 && i6073[11] + 1 > 0 && i6073[11] + 1 < i3[11] && i6073[11] > 0 && i6073[11] < i3[11] && i6075[11] > 0 && i6073[11] + 1 + 1 > 0* TRUE)∧((i7267[11]* i7267[12])∧(i7109[11]* i7109[12])∧(i7111[11]* i7111[12])∧(a47215[11]* a47215[12]))∧(i6073[11]* i6073[12])∧((i3[11]* i3[12])∧(a43225data[11]* a43225data[12])))


(12) -> (3), if (((i3[12]* i3[3])∧(a43225data[12]* a43225data[3]))∧(i6073[12] + 1 + 1* i6073[3])∧(i6075[12]* i6075[3]))


(13) -> (14), if (((i6444[13]* i6444[14])∧(i6342[13]* i6342[14])∧(i6344[13]* i6344[14])∧(a44494[13]* a44494[14]))∧(i6073[13]* i6073[14])∧(i6075[13]* i6075[14])∧((i3[13]* i3[14])∧(a43225data[13]* a43225data[14])))


(14) -> (15), if ((i6073[14]* i6073[15])∧(i6073[14] + 1 > 0 && i6073[14] + 1 < i3[14] && i6444[14] > 0 && i6073[14] > 0 && i6073[14] < i3[14] && i6075[14] > 0 && i6073[14] + 1 + 1 > 0* TRUE)∧(i6075[14]* i6075[15])∧((i6444[14]* i6444[15])∧(i6342[14]* i6342[15])∧(i6344[14]* i6344[15])∧(a44494[14]* a44494[15]))∧((i3[14]* i3[15])∧(a43225data[14]* a43225data[15])))


(15) -> (3), if ((i6073[15] + 1 + 1* i6073[3])∧((i3[15]* i3[3])∧(a43225data[15]* a43225data[3]))∧(i6075[15]* i6075[3]))


(16) -> (17), if (((i7793[16]* i7793[17])∧(i7574[16]* i7574[17])∧(i7576[16]* i7576[17])∧(a48595[16]* a48595[17]))∧((i3[16]* i3[17])∧(a43225data[16]* a43225data[17]))∧(i6075[16]* i6075[17])∧((i6444[16]* i6444[17])∧(i6342[16]* i6342[17])∧(i6344[16]* i6344[17])∧(a44494[16]* a44494[17]))∧(i6073[16]* i6073[17]))


(17) -> (18), if (((i7793[17]* i7793[18])∧(i7574[17]* i7574[18])∧(i7576[17]* i7576[18])∧(a48595[17]* a48595[18]))∧((i6444[17]* i6444[18])∧(i6342[17]* i6342[18])∧(i6344[17]* i6344[18])∧(a44494[17]* a44494[18]))∧(i7793[17] > 0 && i6073[17] + 1 > 0 && i6073[17] + 1 < i3[17] && i6444[17] > 0 && i6073[17] > 0 && i6073[17] < i3[17] && i6075[17] > 0 && i6073[17] + 1 + 1 > 0* TRUE)∧((i3[17]* i3[18])∧(a43225data[17]* a43225data[18]))∧(i6075[17]* i6075[18])∧(i6073[17]* i6073[18]))


(18) -> (3), if ((i6073[18] + 1 + 1* i6073[3])∧((i3[18]* i3[3])∧(a43225data[18]* a43225data[3]))∧(i6075[18]* i6075[3]))



The set Q consists of the following terms:
Load23142(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR3(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
Inc23250(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
New26117(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR4(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142ARR4(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR5(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load23142ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Load23142ARR7(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load23142ARR7(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Load23142ARR9(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)), java.lang.Object(java.lang.String(x8, x9, x10, x11)))
Cond_Load23142ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)), java.lang.Object(java.lang.String(x8, x9, x10, x11)))

(33) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair LOAD23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → LOAD23142ARR3(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) the following chains were created:
  • We consider the chain LOAD23142(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0]) → LOAD23142ARR3(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0]), LOAD23142ARR3(java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1]) → COND_LOAD23142ARR3(&&(&&(&&(&&(&&(>(+(i6073[1], 1), 0), <(+(i6073[1], 1), i3[1])), >(i6073[1], 0)), <(i6073[1], i3[1])), >(i6075[1], 0)), >(+(+(i6073[1], 1), 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1]) which results in the following constraint:

    (1)    (i6073[0]=i6073[1]i3[0]=i3[1]a43225data[0]=a43225data[1]i6075[0]=i6075[1]LOAD23142(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0])≥NonInfC∧LOAD23142(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0])≥LOAD23142ARR3(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0])∧(UIncreasing(LOAD23142ARR3(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0])), ≥))



    We simplified constraint (1) using rule (IV) which results in the following new constraint:

    (2)    (LOAD23142(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0])≥NonInfC∧LOAD23142(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0])≥LOAD23142ARR3(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0])∧(UIncreasing(LOAD23142ARR3(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0])), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    ((UIncreasing(LOAD23142ARR3(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0])), ≥)∧[(-1)bso_30] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    ((UIncreasing(LOAD23142ARR3(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0])), ≥)∧[(-1)bso_30] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    ((UIncreasing(LOAD23142ARR3(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0])), ≥)∧[(-1)bso_30] ≥ 0)



    We simplified constraint (5) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (6)    ((UIncreasing(LOAD23142ARR3(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_30] ≥ 0)







For Pair LOAD23142ARR3(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → COND_LOAD23142ARR3(&&(&&(&&(&&(&&(>(+(i6073, 1), 0), <(+(i6073, 1), i3)), >(i6073, 0)), <(i6073, i3)), >(i6075, 0)), >(+(+(i6073, 1), 1), 0)), java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) the following chains were created:
  • We consider the chain LOAD23142ARR3(java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1]) → COND_LOAD23142ARR3(&&(&&(&&(&&(&&(>(+(i6073[1], 1), 0), <(+(i6073[1], 1), i3[1])), >(i6073[1], 0)), <(i6073[1], i3[1])), >(i6075[1], 0)), >(+(+(i6073[1], 1), 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1]), COND_LOAD23142ARR3(TRUE, java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2], i6075[2]) → NEW26117(java.lang.Object(ARRAY(i3[2], a43225data[2])), +(+(i6073[2], 1), 1), i6075[2]) which results in the following constraint:

    (7)    (i3[1]=i3[2]a43225data[1]=a43225data[2]i6075[1]=i6075[2]i6073[1]=i6073[2]&&(&&(&&(&&(&&(>(+(i6073[1], 1), 0), <(+(i6073[1], 1), i3[1])), >(i6073[1], 0)), <(i6073[1], i3[1])), >(i6075[1], 0)), >(+(+(i6073[1], 1), 1), 0))=TRUELOAD23142ARR3(java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1])≥NonInfC∧LOAD23142ARR3(java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1])≥COND_LOAD23142ARR3(&&(&&(&&(&&(&&(>(+(i6073[1], 1), 0), <(+(i6073[1], 1), i3[1])), >(i6073[1], 0)), <(i6073[1], i3[1])), >(i6075[1], 0)), >(+(+(i6073[1], 1), 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1])∧(UIncreasing(COND_LOAD23142ARR3(&&(&&(&&(&&(&&(>(+(i6073[1], 1), 0), <(+(i6073[1], 1), i3[1])), >(i6073[1], 0)), <(i6073[1], i3[1])), >(i6075[1], 0)), >(+(+(i6073[1], 1), 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1])), ≥))



    We simplified constraint (7) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (8)    (>(+(+(i6073[1], 1), 1), 0)=TRUE>(i6075[1], 0)=TRUE<(i6073[1], i3[1])=TRUE>(i6073[1], 0)=TRUE>(+(i6073[1], 1), 0)=TRUE<(+(i6073[1], 1), i3[1])=TRUELOAD23142ARR3(java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1])≥NonInfC∧LOAD23142ARR3(java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1])≥COND_LOAD23142ARR3(&&(&&(&&(&&(&&(>(+(i6073[1], 1), 0), <(+(i6073[1], 1), i3[1])), >(i6073[1], 0)), <(i6073[1], i3[1])), >(i6075[1], 0)), >(+(+(i6073[1], 1), 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1])∧(UIncreasing(COND_LOAD23142ARR3(&&(&&(&&(&&(&&(>(+(i6073[1], 1), 0), <(+(i6073[1], 1), i3[1])), >(i6073[1], 0)), <(i6073[1], i3[1])), >(i6075[1], 0)), >(+(+(i6073[1], 1), 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1])), ≥))



    We simplified constraint (8) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (9)    (i6073[1] + [1] ≥ 0∧i6075[1] + [-1] ≥ 0∧i3[1] + [-1] + [-1]i6073[1] ≥ 0∧i6073[1] + [-1] ≥ 0∧i6073[1] ≥ 0∧i3[1] + [-2] + [-1]i6073[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR3(&&(&&(&&(&&(&&(>(+(i6073[1], 1), 0), <(+(i6073[1], 1), i3[1])), >(i6073[1], 0)), <(i6073[1], i3[1])), >(i6075[1], 0)), >(+(+(i6073[1], 1), 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1])), ≥)∧[(-1)bni_31 + (-1)Bound*bni_31] + [bni_31]i6075[1] + [bni_31]i3[1] + [(-1)bni_31]i6073[1] ≥ 0∧[(-1)bso_32] ≥ 0)



    We simplified constraint (9) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (10)    (i6073[1] + [1] ≥ 0∧i6075[1] + [-1] ≥ 0∧i3[1] + [-1] + [-1]i6073[1] ≥ 0∧i6073[1] + [-1] ≥ 0∧i6073[1] ≥ 0∧i3[1] + [-2] + [-1]i6073[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR3(&&(&&(&&(&&(&&(>(+(i6073[1], 1), 0), <(+(i6073[1], 1), i3[1])), >(i6073[1], 0)), <(i6073[1], i3[1])), >(i6075[1], 0)), >(+(+(i6073[1], 1), 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1])), ≥)∧[(-1)bni_31 + (-1)Bound*bni_31] + [bni_31]i6075[1] + [bni_31]i3[1] + [(-1)bni_31]i6073[1] ≥ 0∧[(-1)bso_32] ≥ 0)



    We simplified constraint (10) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (11)    (i6073[1] + [1] ≥ 0∧i6075[1] + [-1] ≥ 0∧i3[1] + [-1] + [-1]i6073[1] ≥ 0∧i6073[1] + [-1] ≥ 0∧i6073[1] ≥ 0∧i3[1] + [-2] + [-1]i6073[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR3(&&(&&(&&(&&(&&(>(+(i6073[1], 1), 0), <(+(i6073[1], 1), i3[1])), >(i6073[1], 0)), <(i6073[1], i3[1])), >(i6075[1], 0)), >(+(+(i6073[1], 1), 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1])), ≥)∧[(-1)bni_31 + (-1)Bound*bni_31] + [bni_31]i6075[1] + [bni_31]i3[1] + [(-1)bni_31]i6073[1] ≥ 0∧[(-1)bso_32] ≥ 0)



    We simplified constraint (11) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (12)    (i6073[1] + [1] ≥ 0∧i6075[1] + [-1] ≥ 0∧i3[1] + [-1] + [-1]i6073[1] ≥ 0∧i6073[1] + [-1] ≥ 0∧i6073[1] ≥ 0∧i3[1] + [-2] + [-1]i6073[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR3(&&(&&(&&(&&(&&(>(+(i6073[1], 1), 0), <(+(i6073[1], 1), i3[1])), >(i6073[1], 0)), <(i6073[1], i3[1])), >(i6075[1], 0)), >(+(+(i6073[1], 1), 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1])), ≥)∧0 = 0∧[(-1)bni_31 + (-1)Bound*bni_31] + [bni_31]i6075[1] + [bni_31]i3[1] + [(-1)bni_31]i6073[1] ≥ 0∧0 = 0∧[(-1)bso_32] ≥ 0)



    We simplified constraint (12) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (13)    ([2] + i6073[1] ≥ 0∧i6075[1] + [-1] ≥ 0∧i3[1] + [-2] + [-1]i6073[1] ≥ 0∧i6073[1] ≥ 0∧[1] + i6073[1] ≥ 0∧i3[1] + [-3] + [-1]i6073[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR3(&&(&&(&&(&&(&&(>(+(i6073[1], 1), 0), <(+(i6073[1], 1), i3[1])), >(i6073[1], 0)), <(i6073[1], i3[1])), >(i6075[1], 0)), >(+(+(i6073[1], 1), 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1])), ≥)∧0 = 0∧[(-2)bni_31 + (-1)Bound*bni_31] + [bni_31]i6075[1] + [bni_31]i3[1] + [(-1)bni_31]i6073[1] ≥ 0∧0 = 0∧[(-1)bso_32] ≥ 0)



    We simplified constraint (13) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (14)    ([2] + i6073[1] ≥ 0∧i6075[1] ≥ 0∧i3[1] + [-2] + [-1]i6073[1] ≥ 0∧i6073[1] ≥ 0∧[1] + i6073[1] ≥ 0∧i3[1] + [-3] + [-1]i6073[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR3(&&(&&(&&(&&(&&(>(+(i6073[1], 1), 0), <(+(i6073[1], 1), i3[1])), >(i6073[1], 0)), <(i6073[1], i3[1])), >(i6075[1], 0)), >(+(+(i6073[1], 1), 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1])), ≥)∧0 = 0∧[(-1)Bound*bni_31 + (-1)bni_31] + [bni_31]i6075[1] + [bni_31]i3[1] + [(-1)bni_31]i6073[1] ≥ 0∧0 = 0∧[(-1)bso_32] ≥ 0)



    We simplified constraint (14) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (15)    ([2] + i6073[1] ≥ 0∧i6075[1] ≥ 0∧i3[1] ≥ 0∧i6073[1] ≥ 0∧[1] + i6073[1] ≥ 0∧[-1] + i3[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR3(&&(&&(&&(&&(&&(>(+(i6073[1], 1), 0), <(+(i6073[1], 1), i3[1])), >(i6073[1], 0)), <(i6073[1], i3[1])), >(i6075[1], 0)), >(+(+(i6073[1], 1), 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1])), ≥)∧0 = 0∧[(-1)Bound*bni_31 + bni_31] + [bni_31]i6075[1] + [bni_31]i3[1] ≥ 0∧0 = 0∧[(-1)bso_32] ≥ 0)



    We simplified constraint (15) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (16)    ([2] + i6073[1] ≥ 0∧i6075[1] ≥ 0∧[1] + i3[1] ≥ 0∧i6073[1] ≥ 0∧[1] + i6073[1] ≥ 0∧i3[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR3(&&(&&(&&(&&(&&(>(+(i6073[1], 1), 0), <(+(i6073[1], 1), i3[1])), >(i6073[1], 0)), <(i6073[1], i3[1])), >(i6075[1], 0)), >(+(+(i6073[1], 1), 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1])), ≥)∧0 = 0∧[(-1)Bound*bni_31 + (2)bni_31] + [bni_31]i6075[1] + [bni_31]i3[1] ≥ 0∧0 = 0∧[(-1)bso_32] ≥ 0)







For Pair COND_LOAD23142ARR3(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → NEW26117(java.lang.Object(ARRAY(i3, a43225data)), +(+(i6073, 1), 1), i6075) the following chains were created:
  • We consider the chain COND_LOAD23142ARR3(TRUE, java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2], i6075[2]) → NEW26117(java.lang.Object(ARRAY(i3[2], a43225data[2])), +(+(i6073[2], 1), 1), i6075[2]) which results in the following constraint:

    (17)    (COND_LOAD23142ARR3(TRUE, java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2], i6075[2])≥NonInfC∧COND_LOAD23142ARR3(TRUE, java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2], i6075[2])≥NEW26117(java.lang.Object(ARRAY(i3[2], a43225data[2])), +(+(i6073[2], 1), 1), i6075[2])∧(UIncreasing(NEW26117(java.lang.Object(ARRAY(i3[2], a43225data[2])), +(+(i6073[2], 1), 1), i6075[2])), ≥))



    We simplified constraint (17) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (18)    ((UIncreasing(NEW26117(java.lang.Object(ARRAY(i3[2], a43225data[2])), +(+(i6073[2], 1), 1), i6075[2])), ≥)∧[2 + (-1)bso_34] ≥ 0)



    We simplified constraint (18) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (19)    ((UIncreasing(NEW26117(java.lang.Object(ARRAY(i3[2], a43225data[2])), +(+(i6073[2], 1), 1), i6075[2])), ≥)∧[2 + (-1)bso_34] ≥ 0)



    We simplified constraint (19) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (20)    ((UIncreasing(NEW26117(java.lang.Object(ARRAY(i3[2], a43225data[2])), +(+(i6073[2], 1), 1), i6075[2])), ≥)∧[2 + (-1)bso_34] ≥ 0)



    We simplified constraint (20) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (21)    ((UIncreasing(NEW26117(java.lang.Object(ARRAY(i3[2], a43225data[2])), +(+(i6073[2], 1), 1), i6075[2])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_34] ≥ 0)







For Pair INC23250(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → LOAD23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, +(i6075, -1)) the following chains were created:
  • We consider the chain INC23250(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], i6075[3]) → LOAD23142(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], +(i6075[3], -1)) which results in the following constraint:

    (22)    (INC23250(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], i6075[3])≥NonInfC∧INC23250(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], i6075[3])≥LOAD23142(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], +(i6075[3], -1))∧(UIncreasing(LOAD23142(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], +(i6075[3], -1))), ≥))



    We simplified constraint (22) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (23)    ((UIncreasing(LOAD23142(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], +(i6075[3], -1))), ≥)∧[1 + (-1)bso_36] ≥ 0)



    We simplified constraint (23) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (24)    ((UIncreasing(LOAD23142(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], +(i6075[3], -1))), ≥)∧[1 + (-1)bso_36] ≥ 0)



    We simplified constraint (24) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (25)    ((UIncreasing(LOAD23142(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], +(i6075[3], -1))), ≥)∧[1 + (-1)bso_36] ≥ 0)



    We simplified constraint (25) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (26)    ((UIncreasing(LOAD23142(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], +(i6075[3], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_36] ≥ 0)







For Pair LOAD23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → COND_LOAD23142(>(i6075, 0), java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) the following chains were created:
  • We consider the chain LOAD23142(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4]) → COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4]), COND_LOAD23142(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], i6075[5]) → LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], +(i6075[5], -1)) which results in the following constraint:

    (27)    (i6073[4]=i6073[5]>(i6075[4], 0)=TRUEi6075[4]=i6075[5]i3[4]=i3[5]a43225data[4]=a43225data[5]LOAD23142(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])≥NonInfC∧LOAD23142(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])≥COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])∧(UIncreasing(COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])), ≥))



    We simplified constraint (27) using rule (IV) which results in the following new constraint:

    (28)    (>(i6075[4], 0)=TRUELOAD23142(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])≥NonInfC∧LOAD23142(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])≥COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])∧(UIncreasing(COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])), ≥))



    We simplified constraint (28) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (29)    (i6075[4] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])), ≥)∧[(-1)bni_37 + (-1)Bound*bni_37] + [bni_37]i6075[4] + [bni_37]i3[4] + [(-1)bni_37]i6073[4] ≥ 0∧[(-1)bso_38] ≥ 0)



    We simplified constraint (29) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (30)    (i6075[4] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])), ≥)∧[(-1)bni_37 + (-1)Bound*bni_37] + [bni_37]i6075[4] + [bni_37]i3[4] + [(-1)bni_37]i6073[4] ≥ 0∧[(-1)bso_38] ≥ 0)



    We simplified constraint (30) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (31)    (i6075[4] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])), ≥)∧[(-1)bni_37 + (-1)Bound*bni_37] + [bni_37]i6075[4] + [bni_37]i3[4] + [(-1)bni_37]i6073[4] ≥ 0∧[(-1)bso_38] ≥ 0)



    We simplified constraint (31) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (32)    (i6075[4] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])), ≥)∧0 = 0∧[bni_37] = 0∧[(-1)bni_37] = 0∧[(-1)bni_37 + (-1)Bound*bni_37] + [bni_37]i6075[4] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_38] ≥ 0)



    We simplified constraint (32) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (33)    (i6075[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])), ≥)∧0 = 0∧[bni_37] = 0∧[(-1)bni_37] = 0∧[(-1)Bound*bni_37] + [bni_37]i6075[4] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_38] ≥ 0)







For Pair COND_LOAD23142(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → LOAD23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, +(i6075, -1)) the following chains were created:
  • We consider the chain COND_LOAD23142(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], i6075[5]) → LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], +(i6075[5], -1)) which results in the following constraint:

    (34)    (COND_LOAD23142(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], i6075[5])≥NonInfC∧COND_LOAD23142(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], i6075[5])≥LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], +(i6075[5], -1))∧(UIncreasing(LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], +(i6075[5], -1))), ≥))



    We simplified constraint (34) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (35)    ((UIncreasing(LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], +(i6075[5], -1))), ≥)∧[1 + (-1)bso_40] ≥ 0)



    We simplified constraint (35) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (36)    ((UIncreasing(LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], +(i6075[5], -1))), ≥)∧[1 + (-1)bso_40] ≥ 0)



    We simplified constraint (36) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (37)    ((UIncreasing(LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], +(i6075[5], -1))), ≥)∧[1 + (-1)bso_40] ≥ 0)



    We simplified constraint (37) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (38)    ((UIncreasing(LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], +(i6075[5], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_40] ≥ 0)







For Pair NEW26117(java.lang.Object(ARRAY(i3, a43225data)), i6885, i6075) → INC23250(java.lang.Object(ARRAY(i3, a43225data)), i6885, i6075) the following chains were created:
  • We consider the chain NEW26117(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6]) → INC23250(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6]), INC23250(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], i6075[3]) → LOAD23142(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], +(i6075[3], -1)) which results in the following constraint:

    (39)    (i3[6]=i3[3]a43225data[6]=a43225data[3]i6885[6]=i6073[3]i6075[6]=i6075[3]NEW26117(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6])≥NonInfC∧NEW26117(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6])≥INC23250(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6])∧(UIncreasing(INC23250(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6])), ≥))



    We simplified constraint (39) using rule (IV) which results in the following new constraint:

    (40)    (NEW26117(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6])≥NonInfC∧NEW26117(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6])≥INC23250(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6])∧(UIncreasing(INC23250(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6])), ≥))



    We simplified constraint (40) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (41)    ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6])), ≥)∧[(-1)bso_42] ≥ 0)



    We simplified constraint (41) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (42)    ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6])), ≥)∧[(-1)bso_42] ≥ 0)



    We simplified constraint (42) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (43)    ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6])), ≥)∧[(-1)bso_42] ≥ 0)



    We simplified constraint (43) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (44)    ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_42] ≥ 0)







For Pair LOAD23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → LOAD23142ARR4(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) the following chains were created:
  • We consider the chain LOAD23142(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7]) → LOAD23142ARR4(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7]), LOAD23142ARR4(java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8]) → COND_LOAD23142ARR4(&&(&&(&&(&&(&&(>(+(i6073[8], 1), 0), <(+(i6073[8], 1), i3[8])), >(i6073[8], 0)), <(i6073[8], i3[8])), >(i6075[8], 0)), >(+(+(i6073[8], 1), 1), 0)), java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8]) which results in the following constraint:

    (45)    (i3[7]=i3[8]a43225data[7]=a43225data[8]i6073[7]=i6073[8]i6075[7]=i6075[8]LOAD23142(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7])≥NonInfC∧LOAD23142(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7])≥LOAD23142ARR4(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7])∧(UIncreasing(LOAD23142ARR4(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7])), ≥))



    We simplified constraint (45) using rule (IV) which results in the following new constraint:

    (46)    (LOAD23142(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7])≥NonInfC∧LOAD23142(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7])≥LOAD23142ARR4(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7])∧(UIncreasing(LOAD23142ARR4(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7])), ≥))



    We simplified constraint (46) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (47)    ((UIncreasing(LOAD23142ARR4(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7])), ≥)∧[(-1)bso_44] ≥ 0)



    We simplified constraint (47) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (48)    ((UIncreasing(LOAD23142ARR4(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7])), ≥)∧[(-1)bso_44] ≥ 0)



    We simplified constraint (48) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (49)    ((UIncreasing(LOAD23142ARR4(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7])), ≥)∧[(-1)bso_44] ≥ 0)



    We simplified constraint (49) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (50)    ((UIncreasing(LOAD23142ARR4(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_44] ≥ 0)







For Pair LOAD23142ARR4(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → COND_LOAD23142ARR4(&&(&&(&&(&&(&&(>(+(i6073, 1), 0), <(+(i6073, 1), i3)), >(i6073, 0)), <(i6073, i3)), >(i6075, 0)), >(+(+(i6073, 1), 1), 0)), java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) the following chains were created:
  • We consider the chain LOAD23142ARR4(java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8]) → COND_LOAD23142ARR4(&&(&&(&&(&&(&&(>(+(i6073[8], 1), 0), <(+(i6073[8], 1), i3[8])), >(i6073[8], 0)), <(i6073[8], i3[8])), >(i6075[8], 0)), >(+(+(i6073[8], 1), 1), 0)), java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8]), COND_LOAD23142ARR4(TRUE, java.lang.Object(ARRAY(i3[9], a43225data[9])), i6073[9], i6075[9]) → INC23250(java.lang.Object(ARRAY(i3[9], a43225data[9])), +(+(i6073[9], 1), 1), i6075[9]) which results in the following constraint:

    (51)    (i6073[8]=i6073[9]&&(&&(&&(&&(&&(>(+(i6073[8], 1), 0), <(+(i6073[8], 1), i3[8])), >(i6073[8], 0)), <(i6073[8], i3[8])), >(i6075[8], 0)), >(+(+(i6073[8], 1), 1), 0))=TRUEi6075[8]=i6075[9]i3[8]=i3[9]a43225data[8]=a43225data[9]LOAD23142ARR4(java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8])≥NonInfC∧LOAD23142ARR4(java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8])≥COND_LOAD23142ARR4(&&(&&(&&(&&(&&(>(+(i6073[8], 1), 0), <(+(i6073[8], 1), i3[8])), >(i6073[8], 0)), <(i6073[8], i3[8])), >(i6075[8], 0)), >(+(+(i6073[8], 1), 1), 0)), java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8])∧(UIncreasing(COND_LOAD23142ARR4(&&(&&(&&(&&(&&(>(+(i6073[8], 1), 0), <(+(i6073[8], 1), i3[8])), >(i6073[8], 0)), <(i6073[8], i3[8])), >(i6075[8], 0)), >(+(+(i6073[8], 1), 1), 0)), java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8])), ≥))



    We simplified constraint (51) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (52)    (>(+(+(i6073[8], 1), 1), 0)=TRUE>(i6075[8], 0)=TRUE<(i6073[8], i3[8])=TRUE>(i6073[8], 0)=TRUE>(+(i6073[8], 1), 0)=TRUE<(+(i6073[8], 1), i3[8])=TRUELOAD23142ARR4(java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8])≥NonInfC∧LOAD23142ARR4(java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8])≥COND_LOAD23142ARR4(&&(&&(&&(&&(&&(>(+(i6073[8], 1), 0), <(+(i6073[8], 1), i3[8])), >(i6073[8], 0)), <(i6073[8], i3[8])), >(i6075[8], 0)), >(+(+(i6073[8], 1), 1), 0)), java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8])∧(UIncreasing(COND_LOAD23142ARR4(&&(&&(&&(&&(&&(>(+(i6073[8], 1), 0), <(+(i6073[8], 1), i3[8])), >(i6073[8], 0)), <(i6073[8], i3[8])), >(i6075[8], 0)), >(+(+(i6073[8], 1), 1), 0)), java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8])), ≥))



    We simplified constraint (52) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (53)    (i6073[8] + [1] ≥ 0∧i6075[8] + [-1] ≥ 0∧i3[8] + [-1] + [-1]i6073[8] ≥ 0∧i6073[8] + [-1] ≥ 0∧i6073[8] ≥ 0∧i3[8] + [-2] + [-1]i6073[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR4(&&(&&(&&(&&(&&(>(+(i6073[8], 1), 0), <(+(i6073[8], 1), i3[8])), >(i6073[8], 0)), <(i6073[8], i3[8])), >(i6075[8], 0)), >(+(+(i6073[8], 1), 1), 0)), java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8])), ≥)∧[(-1)bni_45 + (-1)Bound*bni_45] + [bni_45]i6075[8] + [(-1)bni_45]i6073[8] + [bni_45]i3[8] ≥ 0∧[(-1)bso_46] ≥ 0)



    We simplified constraint (53) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (54)    (i6073[8] + [1] ≥ 0∧i6075[8] + [-1] ≥ 0∧i3[8] + [-1] + [-1]i6073[8] ≥ 0∧i6073[8] + [-1] ≥ 0∧i6073[8] ≥ 0∧i3[8] + [-2] + [-1]i6073[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR4(&&(&&(&&(&&(&&(>(+(i6073[8], 1), 0), <(+(i6073[8], 1), i3[8])), >(i6073[8], 0)), <(i6073[8], i3[8])), >(i6075[8], 0)), >(+(+(i6073[8], 1), 1), 0)), java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8])), ≥)∧[(-1)bni_45 + (-1)Bound*bni_45] + [bni_45]i6075[8] + [(-1)bni_45]i6073[8] + [bni_45]i3[8] ≥ 0∧[(-1)bso_46] ≥ 0)



    We simplified constraint (54) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (55)    (i6073[8] + [1] ≥ 0∧i6075[8] + [-1] ≥ 0∧i3[8] + [-1] + [-1]i6073[8] ≥ 0∧i6073[8] + [-1] ≥ 0∧i6073[8] ≥ 0∧i3[8] + [-2] + [-1]i6073[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR4(&&(&&(&&(&&(&&(>(+(i6073[8], 1), 0), <(+(i6073[8], 1), i3[8])), >(i6073[8], 0)), <(i6073[8], i3[8])), >(i6075[8], 0)), >(+(+(i6073[8], 1), 1), 0)), java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8])), ≥)∧[(-1)bni_45 + (-1)Bound*bni_45] + [bni_45]i6075[8] + [(-1)bni_45]i6073[8] + [bni_45]i3[8] ≥ 0∧[(-1)bso_46] ≥ 0)



    We simplified constraint (55) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (56)    (i6073[8] + [1] ≥ 0∧i6075[8] + [-1] ≥ 0∧i3[8] + [-1] + [-1]i6073[8] ≥ 0∧i6073[8] + [-1] ≥ 0∧i6073[8] ≥ 0∧i3[8] + [-2] + [-1]i6073[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR4(&&(&&(&&(&&(&&(>(+(i6073[8], 1), 0), <(+(i6073[8], 1), i3[8])), >(i6073[8], 0)), <(i6073[8], i3[8])), >(i6075[8], 0)), >(+(+(i6073[8], 1), 1), 0)), java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8])), ≥)∧0 = 0∧[(-1)bni_45 + (-1)Bound*bni_45] + [bni_45]i6075[8] + [(-1)bni_45]i6073[8] + [bni_45]i3[8] ≥ 0∧0 = 0∧[(-1)bso_46] ≥ 0)



    We simplified constraint (56) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (57)    ([2] + i6073[8] ≥ 0∧i6075[8] + [-1] ≥ 0∧i3[8] + [-2] + [-1]i6073[8] ≥ 0∧i6073[8] ≥ 0∧[1] + i6073[8] ≥ 0∧i3[8] + [-3] + [-1]i6073[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR4(&&(&&(&&(&&(&&(>(+(i6073[8], 1), 0), <(+(i6073[8], 1), i3[8])), >(i6073[8], 0)), <(i6073[8], i3[8])), >(i6075[8], 0)), >(+(+(i6073[8], 1), 1), 0)), java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8])), ≥)∧0 = 0∧[(-2)bni_45 + (-1)Bound*bni_45] + [bni_45]i6075[8] + [(-1)bni_45]i6073[8] + [bni_45]i3[8] ≥ 0∧0 = 0∧[(-1)bso_46] ≥ 0)



    We simplified constraint (57) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (58)    ([2] + i6073[8] ≥ 0∧i6075[8] ≥ 0∧i3[8] + [-2] + [-1]i6073[8] ≥ 0∧i6073[8] ≥ 0∧[1] + i6073[8] ≥ 0∧i3[8] + [-3] + [-1]i6073[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR4(&&(&&(&&(&&(&&(>(+(i6073[8], 1), 0), <(+(i6073[8], 1), i3[8])), >(i6073[8], 0)), <(i6073[8], i3[8])), >(i6075[8], 0)), >(+(+(i6073[8], 1), 1), 0)), java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8])), ≥)∧0 = 0∧[(-1)Bound*bni_45 + (-1)bni_45] + [bni_45]i6075[8] + [(-1)bni_45]i6073[8] + [bni_45]i3[8] ≥ 0∧0 = 0∧[(-1)bso_46] ≥ 0)



    We simplified constraint (58) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (59)    ([2] + i6073[8] ≥ 0∧i6075[8] ≥ 0∧i3[8] ≥ 0∧i6073[8] ≥ 0∧[1] + i6073[8] ≥ 0∧[-1] + i3[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR4(&&(&&(&&(&&(&&(>(+(i6073[8], 1), 0), <(+(i6073[8], 1), i3[8])), >(i6073[8], 0)), <(i6073[8], i3[8])), >(i6075[8], 0)), >(+(+(i6073[8], 1), 1), 0)), java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8])), ≥)∧0 = 0∧[(-1)Bound*bni_45 + bni_45] + [bni_45]i6075[8] + [bni_45]i3[8] ≥ 0∧0 = 0∧[(-1)bso_46] ≥ 0)



    We simplified constraint (59) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (60)    ([2] + i6073[8] ≥ 0∧i6075[8] ≥ 0∧[1] + i3[8] ≥ 0∧i6073[8] ≥ 0∧[1] + i6073[8] ≥ 0∧i3[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR4(&&(&&(&&(&&(&&(>(+(i6073[8], 1), 0), <(+(i6073[8], 1), i3[8])), >(i6073[8], 0)), <(i6073[8], i3[8])), >(i6075[8], 0)), >(+(+(i6073[8], 1), 1), 0)), java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8])), ≥)∧0 = 0∧[(-1)Bound*bni_45 + (2)bni_45] + [bni_45]i6075[8] + [bni_45]i3[8] ≥ 0∧0 = 0∧[(-1)bso_46] ≥ 0)







For Pair COND_LOAD23142ARR4(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → INC23250(java.lang.Object(ARRAY(i3, a43225data)), +(+(i6073, 1), 1), i6075) the following chains were created:
  • We consider the chain COND_LOAD23142ARR4(TRUE, java.lang.Object(ARRAY(i3[9], a43225data[9])), i6073[9], i6075[9]) → INC23250(java.lang.Object(ARRAY(i3[9], a43225data[9])), +(+(i6073[9], 1), 1), i6075[9]) which results in the following constraint:

    (61)    (COND_LOAD23142ARR4(TRUE, java.lang.Object(ARRAY(i3[9], a43225data[9])), i6073[9], i6075[9])≥NonInfC∧COND_LOAD23142ARR4(TRUE, java.lang.Object(ARRAY(i3[9], a43225data[9])), i6073[9], i6075[9])≥INC23250(java.lang.Object(ARRAY(i3[9], a43225data[9])), +(+(i6073[9], 1), 1), i6075[9])∧(UIncreasing(INC23250(java.lang.Object(ARRAY(i3[9], a43225data[9])), +(+(i6073[9], 1), 1), i6075[9])), ≥))



    We simplified constraint (61) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (62)    ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[9], a43225data[9])), +(+(i6073[9], 1), 1), i6075[9])), ≥)∧[2 + (-1)bso_48] ≥ 0)



    We simplified constraint (62) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (63)    ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[9], a43225data[9])), +(+(i6073[9], 1), 1), i6075[9])), ≥)∧[2 + (-1)bso_48] ≥ 0)



    We simplified constraint (63) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (64)    ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[9], a43225data[9])), +(+(i6073[9], 1), 1), i6075[9])), ≥)∧[2 + (-1)bso_48] ≥ 0)



    We simplified constraint (64) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (65)    ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[9], a43225data[9])), +(+(i6073[9], 1), 1), i6075[9])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_48] ≥ 0)







For Pair LOAD23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → LOAD23142ARR5(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215))) the following chains were created:
  • We consider the chain LOAD23142(java.lang.Object(ARRAY(i3[10], a43225data[10])), i6073[10], i6075[10]) → LOAD23142ARR5(java.lang.Object(ARRAY(i3[10], a43225data[10])), i6073[10], i6075[10], java.lang.Object(java.lang.String(i7267[10], i7109[10], i7111[10], a47215[10]))) which results in the following constraint:

    (66)    (LOAD23142(java.lang.Object(ARRAY(i3[10], a43225data[10])), i6073[10], i6075[10])≥NonInfC∧LOAD23142(java.lang.Object(ARRAY(i3[10], a43225data[10])), i6073[10], i6075[10])≥LOAD23142ARR5(java.lang.Object(ARRAY(i3[10], a43225data[10])), i6073[10], i6075[10], java.lang.Object(java.lang.String(i7267[10], i7109[10], i7111[10], a47215[10])))∧(UIncreasing(LOAD23142ARR5(java.lang.Object(ARRAY(i3[10], a43225data[10])), i6073[10], i6075[10], java.lang.Object(java.lang.String(i7267[10], i7109[10], i7111[10], a47215[10])))), ≥))



    We simplified constraint (66) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (67)    ((UIncreasing(LOAD23142ARR5(java.lang.Object(ARRAY(i3[10], a43225data[10])), i6073[10], i6075[10], java.lang.Object(java.lang.String(i7267[10], i7109[10], i7111[10], a47215[10])))), ≥)∧[(-1)bso_50] ≥ 0)



    We simplified constraint (67) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (68)    ((UIncreasing(LOAD23142ARR5(java.lang.Object(ARRAY(i3[10], a43225data[10])), i6073[10], i6075[10], java.lang.Object(java.lang.String(i7267[10], i7109[10], i7111[10], a47215[10])))), ≥)∧[(-1)bso_50] ≥ 0)



    We simplified constraint (68) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (69)    ((UIncreasing(LOAD23142ARR5(java.lang.Object(ARRAY(i3[10], a43225data[10])), i6073[10], i6075[10], java.lang.Object(java.lang.String(i7267[10], i7109[10], i7111[10], a47215[10])))), ≥)∧[(-1)bso_50] ≥ 0)



    We simplified constraint (69) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (70)    ((UIncreasing(LOAD23142ARR5(java.lang.Object(ARRAY(i3[10], a43225data[10])), i6073[10], i6075[10], java.lang.Object(java.lang.String(i7267[10], i7109[10], i7111[10], a47215[10])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_50] ≥ 0)







For Pair LOAD23142ARR5(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215))) → COND_LOAD23142ARR5(&&(&&(&&(&&(&&(&&(>(i7267, 0), >(+(i6073, 1), 0)), <(+(i6073, 1), i3)), >(i6073, 0)), <(i6073, i3)), >(i6075, 0)), >(+(+(i6073, 1), 1), 0)), java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215))) the following chains were created:
  • We consider the chain LOAD23142ARR5(java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11]))) → COND_LOAD23142ARR5(&&(&&(&&(&&(&&(&&(>(i7267[11], 0), >(+(i6073[11], 1), 0)), <(+(i6073[11], 1), i3[11])), >(i6073[11], 0)), <(i6073[11], i3[11])), >(i6075[11], 0)), >(+(+(i6073[11], 1), 1), 0)), java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11]))), COND_LOAD23142ARR5(TRUE, java.lang.Object(ARRAY(i3[12], a43225data[12])), i6073[12], i6075[12], java.lang.Object(java.lang.String(i7267[12], i7109[12], i7111[12], a47215[12]))) → INC23250(java.lang.Object(ARRAY(i3[12], a43225data[12])), +(+(i6073[12], 1), 1), i6075[12]) which results in the following constraint:

    (71)    (i6075[11]=i6075[12]&&(&&(&&(&&(&&(&&(>(i7267[11], 0), >(+(i6073[11], 1), 0)), <(+(i6073[11], 1), i3[11])), >(i6073[11], 0)), <(i6073[11], i3[11])), >(i6075[11], 0)), >(+(+(i6073[11], 1), 1), 0))=TRUEi7267[11]=i7267[12]i7109[11]=i7109[12]i7111[11]=i7111[12]a47215[11]=a47215[12]i6073[11]=i6073[12]i3[11]=i3[12]a43225data[11]=a43225data[12]LOAD23142ARR5(java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))≥NonInfC∧LOAD23142ARR5(java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))≥COND_LOAD23142ARR5(&&(&&(&&(&&(&&(&&(>(i7267[11], 0), >(+(i6073[11], 1), 0)), <(+(i6073[11], 1), i3[11])), >(i6073[11], 0)), <(i6073[11], i3[11])), >(i6075[11], 0)), >(+(+(i6073[11], 1), 1), 0)), java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))∧(UIncreasing(COND_LOAD23142ARR5(&&(&&(&&(&&(&&(&&(>(i7267[11], 0), >(+(i6073[11], 1), 0)), <(+(i6073[11], 1), i3[11])), >(i6073[11], 0)), <(i6073[11], i3[11])), >(i6075[11], 0)), >(+(+(i6073[11], 1), 1), 0)), java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))), ≥))



    We simplified constraint (71) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (72)    (>(+(+(i6073[11], 1), 1), 0)=TRUE>(i6075[11], 0)=TRUE<(i6073[11], i3[11])=TRUE>(i6073[11], 0)=TRUE<(+(i6073[11], 1), i3[11])=TRUE>(i7267[11], 0)=TRUE>(+(i6073[11], 1), 0)=TRUELOAD23142ARR5(java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))≥NonInfC∧LOAD23142ARR5(java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))≥COND_LOAD23142ARR5(&&(&&(&&(&&(&&(&&(>(i7267[11], 0), >(+(i6073[11], 1), 0)), <(+(i6073[11], 1), i3[11])), >(i6073[11], 0)), <(i6073[11], i3[11])), >(i6075[11], 0)), >(+(+(i6073[11], 1), 1), 0)), java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))∧(UIncreasing(COND_LOAD23142ARR5(&&(&&(&&(&&(&&(&&(>(i7267[11], 0), >(+(i6073[11], 1), 0)), <(+(i6073[11], 1), i3[11])), >(i6073[11], 0)), <(i6073[11], i3[11])), >(i6075[11], 0)), >(+(+(i6073[11], 1), 1), 0)), java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))), ≥))



    We simplified constraint (72) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (73)    (i6073[11] + [1] ≥ 0∧i6075[11] + [-1] ≥ 0∧i3[11] + [-1] + [-1]i6073[11] ≥ 0∧i6073[11] + [-1] ≥ 0∧i3[11] + [-2] + [-1]i6073[11] ≥ 0∧i7267[11] + [-1] ≥ 0∧i6073[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR5(&&(&&(&&(&&(&&(&&(>(i7267[11], 0), >(+(i6073[11], 1), 0)), <(+(i6073[11], 1), i3[11])), >(i6073[11], 0)), <(i6073[11], i3[11])), >(i6075[11], 0)), >(+(+(i6073[11], 1), 1), 0)), java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))), ≥)∧[(-1)bni_51 + (-1)Bound*bni_51] + [bni_51]i6075[11] + [(-1)bni_51]i6073[11] + [bni_51]i3[11] ≥ 0∧[(-1)bso_52] ≥ 0)



    We simplified constraint (73) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (74)    (i6073[11] + [1] ≥ 0∧i6075[11] + [-1] ≥ 0∧i3[11] + [-1] + [-1]i6073[11] ≥ 0∧i6073[11] + [-1] ≥ 0∧i3[11] + [-2] + [-1]i6073[11] ≥ 0∧i7267[11] + [-1] ≥ 0∧i6073[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR5(&&(&&(&&(&&(&&(&&(>(i7267[11], 0), >(+(i6073[11], 1), 0)), <(+(i6073[11], 1), i3[11])), >(i6073[11], 0)), <(i6073[11], i3[11])), >(i6075[11], 0)), >(+(+(i6073[11], 1), 1), 0)), java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))), ≥)∧[(-1)bni_51 + (-1)Bound*bni_51] + [bni_51]i6075[11] + [(-1)bni_51]i6073[11] + [bni_51]i3[11] ≥ 0∧[(-1)bso_52] ≥ 0)



    We simplified constraint (74) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (75)    (i6073[11] + [1] ≥ 0∧i6075[11] + [-1] ≥ 0∧i3[11] + [-1] + [-1]i6073[11] ≥ 0∧i6073[11] + [-1] ≥ 0∧i3[11] + [-2] + [-1]i6073[11] ≥ 0∧i7267[11] + [-1] ≥ 0∧i6073[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR5(&&(&&(&&(&&(&&(&&(>(i7267[11], 0), >(+(i6073[11], 1), 0)), <(+(i6073[11], 1), i3[11])), >(i6073[11], 0)), <(i6073[11], i3[11])), >(i6075[11], 0)), >(+(+(i6073[11], 1), 1), 0)), java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))), ≥)∧[(-1)bni_51 + (-1)Bound*bni_51] + [bni_51]i6075[11] + [(-1)bni_51]i6073[11] + [bni_51]i3[11] ≥ 0∧[(-1)bso_52] ≥ 0)



    We simplified constraint (75) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (76)    (i6073[11] + [1] ≥ 0∧i6075[11] + [-1] ≥ 0∧i3[11] + [-1] + [-1]i6073[11] ≥ 0∧i6073[11] + [-1] ≥ 0∧i3[11] + [-2] + [-1]i6073[11] ≥ 0∧i7267[11] + [-1] ≥ 0∧i6073[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR5(&&(&&(&&(&&(&&(&&(>(i7267[11], 0), >(+(i6073[11], 1), 0)), <(+(i6073[11], 1), i3[11])), >(i6073[11], 0)), <(i6073[11], i3[11])), >(i6075[11], 0)), >(+(+(i6073[11], 1), 1), 0)), java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bni_51 + (-1)Bound*bni_51] + [bni_51]i6075[11] + [(-1)bni_51]i6073[11] + [bni_51]i3[11] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_52] ≥ 0)



    We simplified constraint (76) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (77)    ([2] + i6073[11] ≥ 0∧i6075[11] + [-1] ≥ 0∧i3[11] + [-2] + [-1]i6073[11] ≥ 0∧i6073[11] ≥ 0∧i3[11] + [-3] + [-1]i6073[11] ≥ 0∧i7267[11] + [-1] ≥ 0∧[1] + i6073[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR5(&&(&&(&&(&&(&&(&&(>(i7267[11], 0), >(+(i6073[11], 1), 0)), <(+(i6073[11], 1), i3[11])), >(i6073[11], 0)), <(i6073[11], i3[11])), >(i6075[11], 0)), >(+(+(i6073[11], 1), 1), 0)), java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-2)bni_51 + (-1)Bound*bni_51] + [bni_51]i6075[11] + [(-1)bni_51]i6073[11] + [bni_51]i3[11] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_52] ≥ 0)



    We simplified constraint (77) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (78)    ([2] + i6073[11] ≥ 0∧i6075[11] ≥ 0∧i3[11] + [-2] + [-1]i6073[11] ≥ 0∧i6073[11] ≥ 0∧i3[11] + [-3] + [-1]i6073[11] ≥ 0∧i7267[11] + [-1] ≥ 0∧[1] + i6073[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR5(&&(&&(&&(&&(&&(&&(>(i7267[11], 0), >(+(i6073[11], 1), 0)), <(+(i6073[11], 1), i3[11])), >(i6073[11], 0)), <(i6073[11], i3[11])), >(i6075[11], 0)), >(+(+(i6073[11], 1), 1), 0)), java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_51 + (-1)bni_51] + [bni_51]i6075[11] + [(-1)bni_51]i6073[11] + [bni_51]i3[11] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_52] ≥ 0)



    We simplified constraint (78) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (79)    ([2] + i6073[11] ≥ 0∧i6075[11] ≥ 0∧i3[11] ≥ 0∧i6073[11] ≥ 0∧[-1] + i3[11] ≥ 0∧i7267[11] + [-1] ≥ 0∧[1] + i6073[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR5(&&(&&(&&(&&(&&(&&(>(i7267[11], 0), >(+(i6073[11], 1), 0)), <(+(i6073[11], 1), i3[11])), >(i6073[11], 0)), <(i6073[11], i3[11])), >(i6075[11], 0)), >(+(+(i6073[11], 1), 1), 0)), java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_51 + bni_51] + [bni_51]i6075[11] + [bni_51]i3[11] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_52] ≥ 0)



    We simplified constraint (79) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (80)    ([2] + i6073[11] ≥ 0∧i6075[11] ≥ 0∧[1] + i3[11] ≥ 0∧i6073[11] ≥ 0∧i3[11] ≥ 0∧i7267[11] + [-1] ≥ 0∧[1] + i6073[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR5(&&(&&(&&(&&(&&(&&(>(i7267[11], 0), >(+(i6073[11], 1), 0)), <(+(i6073[11], 1), i3[11])), >(i6073[11], 0)), <(i6073[11], i3[11])), >(i6075[11], 0)), >(+(+(i6073[11], 1), 1), 0)), java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_51 + (2)bni_51] + [bni_51]i6075[11] + [bni_51]i3[11] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_52] ≥ 0)



    We simplified constraint (80) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (81)    ([2] + i6073[11] ≥ 0∧i6075[11] ≥ 0∧[1] + i3[11] ≥ 0∧i6073[11] ≥ 0∧i3[11] ≥ 0∧i7267[11] ≥ 0∧[1] + i6073[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR5(&&(&&(&&(&&(&&(&&(>(i7267[11], 0), >(+(i6073[11], 1), 0)), <(+(i6073[11], 1), i3[11])), >(i6073[11], 0)), <(i6073[11], i3[11])), >(i6075[11], 0)), >(+(+(i6073[11], 1), 1), 0)), java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_51 + (2)bni_51] + [bni_51]i6075[11] + [bni_51]i3[11] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_52] ≥ 0)







For Pair COND_LOAD23142ARR5(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215))) → INC23250(java.lang.Object(ARRAY(i3, a43225data)), +(+(i6073, 1), 1), i6075) the following chains were created:
  • We consider the chain COND_LOAD23142ARR5(TRUE, java.lang.Object(ARRAY(i3[12], a43225data[12])), i6073[12], i6075[12], java.lang.Object(java.lang.String(i7267[12], i7109[12], i7111[12], a47215[12]))) → INC23250(java.lang.Object(ARRAY(i3[12], a43225data[12])), +(+(i6073[12], 1), 1), i6075[12]) which results in the following constraint:

    (82)    (COND_LOAD23142ARR5(TRUE, java.lang.Object(ARRAY(i3[12], a43225data[12])), i6073[12], i6075[12], java.lang.Object(java.lang.String(i7267[12], i7109[12], i7111[12], a47215[12])))≥NonInfC∧COND_LOAD23142ARR5(TRUE, java.lang.Object(ARRAY(i3[12], a43225data[12])), i6073[12], i6075[12], java.lang.Object(java.lang.String(i7267[12], i7109[12], i7111[12], a47215[12])))≥INC23250(java.lang.Object(ARRAY(i3[12], a43225data[12])), +(+(i6073[12], 1), 1), i6075[12])∧(UIncreasing(INC23250(java.lang.Object(ARRAY(i3[12], a43225data[12])), +(+(i6073[12], 1), 1), i6075[12])), ≥))



    We simplified constraint (82) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (83)    ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[12], a43225data[12])), +(+(i6073[12], 1), 1), i6075[12])), ≥)∧[2 + (-1)bso_54] ≥ 0)



    We simplified constraint (83) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (84)    ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[12], a43225data[12])), +(+(i6073[12], 1), 1), i6075[12])), ≥)∧[2 + (-1)bso_54] ≥ 0)



    We simplified constraint (84) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (85)    ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[12], a43225data[12])), +(+(i6073[12], 1), 1), i6075[12])), ≥)∧[2 + (-1)bso_54] ≥ 0)



    We simplified constraint (85) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (86)    ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[12], a43225data[12])), +(+(i6073[12], 1), 1), i6075[12])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_54] ≥ 0)







For Pair LOAD23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → LOAD23142ARR7(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) the following chains were created:
  • We consider the chain LOAD23142(java.lang.Object(ARRAY(i3[13], a43225data[13])), i6073[13], i6075[13]) → LOAD23142ARR7(java.lang.Object(ARRAY(i3[13], a43225data[13])), i6073[13], i6075[13], java.lang.Object(java.lang.String(i6444[13], i6342[13], i6344[13], a44494[13]))) which results in the following constraint:

    (87)    (LOAD23142(java.lang.Object(ARRAY(i3[13], a43225data[13])), i6073[13], i6075[13])≥NonInfC∧LOAD23142(java.lang.Object(ARRAY(i3[13], a43225data[13])), i6073[13], i6075[13])≥LOAD23142ARR7(java.lang.Object(ARRAY(i3[13], a43225data[13])), i6073[13], i6075[13], java.lang.Object(java.lang.String(i6444[13], i6342[13], i6344[13], a44494[13])))∧(UIncreasing(LOAD23142ARR7(java.lang.Object(ARRAY(i3[13], a43225data[13])), i6073[13], i6075[13], java.lang.Object(java.lang.String(i6444[13], i6342[13], i6344[13], a44494[13])))), ≥))



    We simplified constraint (87) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (88)    ((UIncreasing(LOAD23142ARR7(java.lang.Object(ARRAY(i3[13], a43225data[13])), i6073[13], i6075[13], java.lang.Object(java.lang.String(i6444[13], i6342[13], i6344[13], a44494[13])))), ≥)∧[(-1)bso_56] ≥ 0)



    We simplified constraint (88) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (89)    ((UIncreasing(LOAD23142ARR7(java.lang.Object(ARRAY(i3[13], a43225data[13])), i6073[13], i6075[13], java.lang.Object(java.lang.String(i6444[13], i6342[13], i6344[13], a44494[13])))), ≥)∧[(-1)bso_56] ≥ 0)



    We simplified constraint (89) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (90)    ((UIncreasing(LOAD23142ARR7(java.lang.Object(ARRAY(i3[13], a43225data[13])), i6073[13], i6075[13], java.lang.Object(java.lang.String(i6444[13], i6342[13], i6344[13], a44494[13])))), ≥)∧[(-1)bso_56] ≥ 0)



    We simplified constraint (90) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (91)    ((UIncreasing(LOAD23142ARR7(java.lang.Object(ARRAY(i3[13], a43225data[13])), i6073[13], i6075[13], java.lang.Object(java.lang.String(i6444[13], i6342[13], i6344[13], a44494[13])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_56] ≥ 0)







For Pair LOAD23142ARR7(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → COND_LOAD23142ARR7(&&(&&(&&(&&(&&(&&(>(+(i6073, 1), 0), <(+(i6073, 1), i3)), >(i6444, 0)), >(i6073, 0)), <(i6073, i3)), >(i6075, 0)), >(+(+(i6073, 1), 1), 0)), java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) the following chains were created:
  • We consider the chain LOAD23142ARR7(java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14]))) → COND_LOAD23142ARR7(&&(&&(&&(&&(&&(&&(>(+(i6073[14], 1), 0), <(+(i6073[14], 1), i3[14])), >(i6444[14], 0)), >(i6073[14], 0)), <(i6073[14], i3[14])), >(i6075[14], 0)), >(+(+(i6073[14], 1), 1), 0)), java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14]))), COND_LOAD23142ARR7(TRUE, java.lang.Object(ARRAY(i3[15], a43225data[15])), i6073[15], i6075[15], java.lang.Object(java.lang.String(i6444[15], i6342[15], i6344[15], a44494[15]))) → INC23250(java.lang.Object(ARRAY(i3[15], a43225data[15])), +(+(i6073[15], 1), 1), i6075[15]) which results in the following constraint:

    (92)    (i6073[14]=i6073[15]&&(&&(&&(&&(&&(&&(>(+(i6073[14], 1), 0), <(+(i6073[14], 1), i3[14])), >(i6444[14], 0)), >(i6073[14], 0)), <(i6073[14], i3[14])), >(i6075[14], 0)), >(+(+(i6073[14], 1), 1), 0))=TRUEi6075[14]=i6075[15]i6444[14]=i6444[15]i6342[14]=i6342[15]i6344[14]=i6344[15]a44494[14]=a44494[15]i3[14]=i3[15]a43225data[14]=a43225data[15]LOAD23142ARR7(java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))≥NonInfC∧LOAD23142ARR7(java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))≥COND_LOAD23142ARR7(&&(&&(&&(&&(&&(&&(>(+(i6073[14], 1), 0), <(+(i6073[14], 1), i3[14])), >(i6444[14], 0)), >(i6073[14], 0)), <(i6073[14], i3[14])), >(i6075[14], 0)), >(+(+(i6073[14], 1), 1), 0)), java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))∧(UIncreasing(COND_LOAD23142ARR7(&&(&&(&&(&&(&&(&&(>(+(i6073[14], 1), 0), <(+(i6073[14], 1), i3[14])), >(i6444[14], 0)), >(i6073[14], 0)), <(i6073[14], i3[14])), >(i6075[14], 0)), >(+(+(i6073[14], 1), 1), 0)), java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))), ≥))



    We simplified constraint (92) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (93)    (>(+(+(i6073[14], 1), 1), 0)=TRUE>(i6075[14], 0)=TRUE<(i6073[14], i3[14])=TRUE>(i6073[14], 0)=TRUE>(i6444[14], 0)=TRUE>(+(i6073[14], 1), 0)=TRUE<(+(i6073[14], 1), i3[14])=TRUELOAD23142ARR7(java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))≥NonInfC∧LOAD23142ARR7(java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))≥COND_LOAD23142ARR7(&&(&&(&&(&&(&&(&&(>(+(i6073[14], 1), 0), <(+(i6073[14], 1), i3[14])), >(i6444[14], 0)), >(i6073[14], 0)), <(i6073[14], i3[14])), >(i6075[14], 0)), >(+(+(i6073[14], 1), 1), 0)), java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))∧(UIncreasing(COND_LOAD23142ARR7(&&(&&(&&(&&(&&(&&(>(+(i6073[14], 1), 0), <(+(i6073[14], 1), i3[14])), >(i6444[14], 0)), >(i6073[14], 0)), <(i6073[14], i3[14])), >(i6075[14], 0)), >(+(+(i6073[14], 1), 1), 0)), java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))), ≥))



    We simplified constraint (93) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (94)    (i6073[14] + [1] ≥ 0∧i6075[14] + [-1] ≥ 0∧i3[14] + [-1] + [-1]i6073[14] ≥ 0∧i6073[14] + [-1] ≥ 0∧i6444[14] + [-1] ≥ 0∧i6073[14] ≥ 0∧i3[14] + [-2] + [-1]i6073[14] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR7(&&(&&(&&(&&(&&(&&(>(+(i6073[14], 1), 0), <(+(i6073[14], 1), i3[14])), >(i6444[14], 0)), >(i6073[14], 0)), <(i6073[14], i3[14])), >(i6075[14], 0)), >(+(+(i6073[14], 1), 1), 0)), java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))), ≥)∧[(-1)bni_57 + (-1)Bound*bni_57] + [bni_57]i6075[14] + [(-1)bni_57]i6073[14] + [bni_57]i3[14] ≥ 0∧[(-1)bso_58] ≥ 0)



    We simplified constraint (94) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (95)    (i6073[14] + [1] ≥ 0∧i6075[14] + [-1] ≥ 0∧i3[14] + [-1] + [-1]i6073[14] ≥ 0∧i6073[14] + [-1] ≥ 0∧i6444[14] + [-1] ≥ 0∧i6073[14] ≥ 0∧i3[14] + [-2] + [-1]i6073[14] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR7(&&(&&(&&(&&(&&(&&(>(+(i6073[14], 1), 0), <(+(i6073[14], 1), i3[14])), >(i6444[14], 0)), >(i6073[14], 0)), <(i6073[14], i3[14])), >(i6075[14], 0)), >(+(+(i6073[14], 1), 1), 0)), java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))), ≥)∧[(-1)bni_57 + (-1)Bound*bni_57] + [bni_57]i6075[14] + [(-1)bni_57]i6073[14] + [bni_57]i3[14] ≥ 0∧[(-1)bso_58] ≥ 0)



    We simplified constraint (95) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (96)    (i6073[14] + [1] ≥ 0∧i6075[14] + [-1] ≥ 0∧i3[14] + [-1] + [-1]i6073[14] ≥ 0∧i6073[14] + [-1] ≥ 0∧i6444[14] + [-1] ≥ 0∧i6073[14] ≥ 0∧i3[14] + [-2] + [-1]i6073[14] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR7(&&(&&(&&(&&(&&(&&(>(+(i6073[14], 1), 0), <(+(i6073[14], 1), i3[14])), >(i6444[14], 0)), >(i6073[14], 0)), <(i6073[14], i3[14])), >(i6075[14], 0)), >(+(+(i6073[14], 1), 1), 0)), java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))), ≥)∧[(-1)bni_57 + (-1)Bound*bni_57] + [bni_57]i6075[14] + [(-1)bni_57]i6073[14] + [bni_57]i3[14] ≥ 0∧[(-1)bso_58] ≥ 0)



    We simplified constraint (96) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (97)    (i6073[14] + [1] ≥ 0∧i6075[14] + [-1] ≥ 0∧i3[14] + [-1] + [-1]i6073[14] ≥ 0∧i6073[14] + [-1] ≥ 0∧i6444[14] + [-1] ≥ 0∧i6073[14] ≥ 0∧i3[14] + [-2] + [-1]i6073[14] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR7(&&(&&(&&(&&(&&(&&(>(+(i6073[14], 1), 0), <(+(i6073[14], 1), i3[14])), >(i6444[14], 0)), >(i6073[14], 0)), <(i6073[14], i3[14])), >(i6075[14], 0)), >(+(+(i6073[14], 1), 1), 0)), java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bni_57 + (-1)Bound*bni_57] + [bni_57]i6075[14] + [(-1)bni_57]i6073[14] + [bni_57]i3[14] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_58] ≥ 0)



    We simplified constraint (97) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (98)    ([2] + i6073[14] ≥ 0∧i6075[14] + [-1] ≥ 0∧i3[14] + [-2] + [-1]i6073[14] ≥ 0∧i6073[14] ≥ 0∧i6444[14] + [-1] ≥ 0∧[1] + i6073[14] ≥ 0∧i3[14] + [-3] + [-1]i6073[14] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR7(&&(&&(&&(&&(&&(&&(>(+(i6073[14], 1), 0), <(+(i6073[14], 1), i3[14])), >(i6444[14], 0)), >(i6073[14], 0)), <(i6073[14], i3[14])), >(i6075[14], 0)), >(+(+(i6073[14], 1), 1), 0)), java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-2)bni_57 + (-1)Bound*bni_57] + [bni_57]i6075[14] + [(-1)bni_57]i6073[14] + [bni_57]i3[14] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_58] ≥ 0)



    We simplified constraint (98) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (99)    ([2] + i6073[14] ≥ 0∧i6075[14] ≥ 0∧i3[14] + [-2] + [-1]i6073[14] ≥ 0∧i6073[14] ≥ 0∧i6444[14] + [-1] ≥ 0∧[1] + i6073[14] ≥ 0∧i3[14] + [-3] + [-1]i6073[14] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR7(&&(&&(&&(&&(&&(&&(>(+(i6073[14], 1), 0), <(+(i6073[14], 1), i3[14])), >(i6444[14], 0)), >(i6073[14], 0)), <(i6073[14], i3[14])), >(i6075[14], 0)), >(+(+(i6073[14], 1), 1), 0)), java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_57 + (-1)bni_57] + [bni_57]i6075[14] + [(-1)bni_57]i6073[14] + [bni_57]i3[14] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_58] ≥ 0)



    We simplified constraint (99) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (100)    ([2] + i6073[14] ≥ 0∧i6075[14] ≥ 0∧i3[14] ≥ 0∧i6073[14] ≥ 0∧i6444[14] + [-1] ≥ 0∧[1] + i6073[14] ≥ 0∧[-1] + i3[14] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR7(&&(&&(&&(&&(&&(&&(>(+(i6073[14], 1), 0), <(+(i6073[14], 1), i3[14])), >(i6444[14], 0)), >(i6073[14], 0)), <(i6073[14], i3[14])), >(i6075[14], 0)), >(+(+(i6073[14], 1), 1), 0)), java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_57 + bni_57] + [bni_57]i6075[14] + [bni_57]i3[14] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_58] ≥ 0)



    We simplified constraint (100) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (101)    ([2] + i6073[14] ≥ 0∧i6075[14] ≥ 0∧[1] + i3[14] ≥ 0∧i6073[14] ≥ 0∧i6444[14] + [-1] ≥ 0∧[1] + i6073[14] ≥ 0∧i3[14] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR7(&&(&&(&&(&&(&&(&&(>(+(i6073[14], 1), 0), <(+(i6073[14], 1), i3[14])), >(i6444[14], 0)), >(i6073[14], 0)), <(i6073[14], i3[14])), >(i6075[14], 0)), >(+(+(i6073[14], 1), 1), 0)), java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_57 + (2)bni_57] + [bni_57]i6075[14] + [bni_57]i3[14] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_58] ≥ 0)



    We simplified constraint (101) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (102)    ([2] + i6073[14] ≥ 0∧i6075[14] ≥ 0∧[1] + i3[14] ≥ 0∧i6073[14] ≥ 0∧i6444[14] ≥ 0∧[1] + i6073[14] ≥ 0∧i3[14] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR7(&&(&&(&&(&&(&&(&&(>(+(i6073[14], 1), 0), <(+(i6073[14], 1), i3[14])), >(i6444[14], 0)), >(i6073[14], 0)), <(i6073[14], i3[14])), >(i6075[14], 0)), >(+(+(i6073[14], 1), 1), 0)), java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_57 + (2)bni_57] + [bni_57]i6075[14] + [bni_57]i3[14] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_58] ≥ 0)







For Pair COND_LOAD23142ARR7(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → INC23250(java.lang.Object(ARRAY(i3, a43225data)), +(+(i6073, 1), 1), i6075) the following chains were created:
  • We consider the chain COND_LOAD23142ARR7(TRUE, java.lang.Object(ARRAY(i3[15], a43225data[15])), i6073[15], i6075[15], java.lang.Object(java.lang.String(i6444[15], i6342[15], i6344[15], a44494[15]))) → INC23250(java.lang.Object(ARRAY(i3[15], a43225data[15])), +(+(i6073[15], 1), 1), i6075[15]) which results in the following constraint:

    (103)    (COND_LOAD23142ARR7(TRUE, java.lang.Object(ARRAY(i3[15], a43225data[15])), i6073[15], i6075[15], java.lang.Object(java.lang.String(i6444[15], i6342[15], i6344[15], a44494[15])))≥NonInfC∧COND_LOAD23142ARR7(TRUE, java.lang.Object(ARRAY(i3[15], a43225data[15])), i6073[15], i6075[15], java.lang.Object(java.lang.String(i6444[15], i6342[15], i6344[15], a44494[15])))≥INC23250(java.lang.Object(ARRAY(i3[15], a43225data[15])), +(+(i6073[15], 1), 1), i6075[15])∧(UIncreasing(INC23250(java.lang.Object(ARRAY(i3[15], a43225data[15])), +(+(i6073[15], 1), 1), i6075[15])), ≥))



    We simplified constraint (103) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (104)    ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[15], a43225data[15])), +(+(i6073[15], 1), 1), i6075[15])), ≥)∧[2 + (-1)bso_60] ≥ 0)



    We simplified constraint (104) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (105)    ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[15], a43225data[15])), +(+(i6073[15], 1), 1), i6075[15])), ≥)∧[2 + (-1)bso_60] ≥ 0)



    We simplified constraint (105) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (106)    ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[15], a43225data[15])), +(+(i6073[15], 1), 1), i6075[15])), ≥)∧[2 + (-1)bso_60] ≥ 0)



    We simplified constraint (106) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (107)    ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[15], a43225data[15])), +(+(i6073[15], 1), 1), i6075[15])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_60] ≥ 0)







For Pair LOAD23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → LOAD23142ARR9(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) the following chains were created:
  • We consider the chain LOAD23142(java.lang.Object(ARRAY(i3[16], a43225data[16])), i6073[16], i6075[16]) → LOAD23142ARR9(java.lang.Object(ARRAY(i3[16], a43225data[16])), i6073[16], i6075[16], java.lang.Object(java.lang.String(i7793[16], i7574[16], i7576[16], a48595[16])), java.lang.Object(java.lang.String(i6444[16], i6342[16], i6344[16], a44494[16]))) which results in the following constraint:

    (108)    (LOAD23142(java.lang.Object(ARRAY(i3[16], a43225data[16])), i6073[16], i6075[16])≥NonInfC∧LOAD23142(java.lang.Object(ARRAY(i3[16], a43225data[16])), i6073[16], i6075[16])≥LOAD23142ARR9(java.lang.Object(ARRAY(i3[16], a43225data[16])), i6073[16], i6075[16], java.lang.Object(java.lang.String(i7793[16], i7574[16], i7576[16], a48595[16])), java.lang.Object(java.lang.String(i6444[16], i6342[16], i6344[16], a44494[16])))∧(UIncreasing(LOAD23142ARR9(java.lang.Object(ARRAY(i3[16], a43225data[16])), i6073[16], i6075[16], java.lang.Object(java.lang.String(i7793[16], i7574[16], i7576[16], a48595[16])), java.lang.Object(java.lang.String(i6444[16], i6342[16], i6344[16], a44494[16])))), ≥))



    We simplified constraint (108) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (109)    ((UIncreasing(LOAD23142ARR9(java.lang.Object(ARRAY(i3[16], a43225data[16])), i6073[16], i6075[16], java.lang.Object(java.lang.String(i7793[16], i7574[16], i7576[16], a48595[16])), java.lang.Object(java.lang.String(i6444[16], i6342[16], i6344[16], a44494[16])))), ≥)∧[(-1)bso_62] ≥ 0)



    We simplified constraint (109) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (110)    ((UIncreasing(LOAD23142ARR9(java.lang.Object(ARRAY(i3[16], a43225data[16])), i6073[16], i6075[16], java.lang.Object(java.lang.String(i7793[16], i7574[16], i7576[16], a48595[16])), java.lang.Object(java.lang.String(i6444[16], i6342[16], i6344[16], a44494[16])))), ≥)∧[(-1)bso_62] ≥ 0)



    We simplified constraint (110) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (111)    ((UIncreasing(LOAD23142ARR9(java.lang.Object(ARRAY(i3[16], a43225data[16])), i6073[16], i6075[16], java.lang.Object(java.lang.String(i7793[16], i7574[16], i7576[16], a48595[16])), java.lang.Object(java.lang.String(i6444[16], i6342[16], i6344[16], a44494[16])))), ≥)∧[(-1)bso_62] ≥ 0)



    We simplified constraint (111) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (112)    ((UIncreasing(LOAD23142ARR9(java.lang.Object(ARRAY(i3[16], a43225data[16])), i6073[16], i6075[16], java.lang.Object(java.lang.String(i7793[16], i7574[16], i7576[16], a48595[16])), java.lang.Object(java.lang.String(i6444[16], i6342[16], i6344[16], a44494[16])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_62] ≥ 0)







For Pair LOAD23142ARR9(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → COND_LOAD23142ARR9(&&(&&(&&(&&(&&(&&(&&(>(i7793, 0), >(+(i6073, 1), 0)), <(+(i6073, 1), i3)), >(i6444, 0)), >(i6073, 0)), <(i6073, i3)), >(i6075, 0)), >(+(+(i6073, 1), 1), 0)), java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) the following chains were created:
  • We consider the chain LOAD23142ARR9(java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17]))) → COND_LOAD23142ARR9(&&(&&(&&(&&(&&(&&(&&(>(i7793[17], 0), >(+(i6073[17], 1), 0)), <(+(i6073[17], 1), i3[17])), >(i6444[17], 0)), >(i6073[17], 0)), <(i6073[17], i3[17])), >(i6075[17], 0)), >(+(+(i6073[17], 1), 1), 0)), java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17]))), COND_LOAD23142ARR9(TRUE, java.lang.Object(ARRAY(i3[18], a43225data[18])), i6073[18], i6075[18], java.lang.Object(java.lang.String(i7793[18], i7574[18], i7576[18], a48595[18])), java.lang.Object(java.lang.String(i6444[18], i6342[18], i6344[18], a44494[18]))) → INC23250(java.lang.Object(ARRAY(i3[18], a43225data[18])), +(+(i6073[18], 1), 1), i6075[18]) which results in the following constraint:

    (113)    (i7793[17]=i7793[18]i7574[17]=i7574[18]i7576[17]=i7576[18]a48595[17]=a48595[18]i6444[17]=i6444[18]i6342[17]=i6342[18]i6344[17]=i6344[18]a44494[17]=a44494[18]&&(&&(&&(&&(&&(&&(&&(>(i7793[17], 0), >(+(i6073[17], 1), 0)), <(+(i6073[17], 1), i3[17])), >(i6444[17], 0)), >(i6073[17], 0)), <(i6073[17], i3[17])), >(i6075[17], 0)), >(+(+(i6073[17], 1), 1), 0))=TRUEi3[17]=i3[18]a43225data[17]=a43225data[18]i6075[17]=i6075[18]i6073[17]=i6073[18]LOAD23142ARR9(java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))≥NonInfC∧LOAD23142ARR9(java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))≥COND_LOAD23142ARR9(&&(&&(&&(&&(&&(&&(&&(>(i7793[17], 0), >(+(i6073[17], 1), 0)), <(+(i6073[17], 1), i3[17])), >(i6444[17], 0)), >(i6073[17], 0)), <(i6073[17], i3[17])), >(i6075[17], 0)), >(+(+(i6073[17], 1), 1), 0)), java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))∧(UIncreasing(COND_LOAD23142ARR9(&&(&&(&&(&&(&&(&&(&&(>(i7793[17], 0), >(+(i6073[17], 1), 0)), <(+(i6073[17], 1), i3[17])), >(i6444[17], 0)), >(i6073[17], 0)), <(i6073[17], i3[17])), >(i6075[17], 0)), >(+(+(i6073[17], 1), 1), 0)), java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))), ≥))



    We simplified constraint (113) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (114)    (>(+(+(i6073[17], 1), 1), 0)=TRUE>(i6075[17], 0)=TRUE<(i6073[17], i3[17])=TRUE>(i6073[17], 0)=TRUE>(i6444[17], 0)=TRUE<(+(i6073[17], 1), i3[17])=TRUE>(i7793[17], 0)=TRUE>(+(i6073[17], 1), 0)=TRUELOAD23142ARR9(java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))≥NonInfC∧LOAD23142ARR9(java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))≥COND_LOAD23142ARR9(&&(&&(&&(&&(&&(&&(&&(>(i7793[17], 0), >(+(i6073[17], 1), 0)), <(+(i6073[17], 1), i3[17])), >(i6444[17], 0)), >(i6073[17], 0)), <(i6073[17], i3[17])), >(i6075[17], 0)), >(+(+(i6073[17], 1), 1), 0)), java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))∧(UIncreasing(COND_LOAD23142ARR9(&&(&&(&&(&&(&&(&&(&&(>(i7793[17], 0), >(+(i6073[17], 1), 0)), <(+(i6073[17], 1), i3[17])), >(i6444[17], 0)), >(i6073[17], 0)), <(i6073[17], i3[17])), >(i6075[17], 0)), >(+(+(i6073[17], 1), 1), 0)), java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))), ≥))



    We simplified constraint (114) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (115)    (i6073[17] + [1] ≥ 0∧i6075[17] + [-1] ≥ 0∧i3[17] + [-1] + [-1]i6073[17] ≥ 0∧i6073[17] + [-1] ≥ 0∧i6444[17] + [-1] ≥ 0∧i3[17] + [-2] + [-1]i6073[17] ≥ 0∧i7793[17] + [-1] ≥ 0∧i6073[17] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR9(&&(&&(&&(&&(&&(&&(&&(>(i7793[17], 0), >(+(i6073[17], 1), 0)), <(+(i6073[17], 1), i3[17])), >(i6444[17], 0)), >(i6073[17], 0)), <(i6073[17], i3[17])), >(i6075[17], 0)), >(+(+(i6073[17], 1), 1), 0)), java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))), ≥)∧[(-1)bni_63 + (-1)Bound*bni_63] + [bni_63]i6075[17] + [(-1)bni_63]i6073[17] + [bni_63]i3[17] ≥ 0∧[(-1)bso_64] ≥ 0)



    We simplified constraint (115) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (116)    (i6073[17] + [1] ≥ 0∧i6075[17] + [-1] ≥ 0∧i3[17] + [-1] + [-1]i6073[17] ≥ 0∧i6073[17] + [-1] ≥ 0∧i6444[17] + [-1] ≥ 0∧i3[17] + [-2] + [-1]i6073[17] ≥ 0∧i7793[17] + [-1] ≥ 0∧i6073[17] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR9(&&(&&(&&(&&(&&(&&(&&(>(i7793[17], 0), >(+(i6073[17], 1), 0)), <(+(i6073[17], 1), i3[17])), >(i6444[17], 0)), >(i6073[17], 0)), <(i6073[17], i3[17])), >(i6075[17], 0)), >(+(+(i6073[17], 1), 1), 0)), java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))), ≥)∧[(-1)bni_63 + (-1)Bound*bni_63] + [bni_63]i6075[17] + [(-1)bni_63]i6073[17] + [bni_63]i3[17] ≥ 0∧[(-1)bso_64] ≥ 0)



    We simplified constraint (116) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (117)    (i6073[17] + [1] ≥ 0∧i6075[17] + [-1] ≥ 0∧i3[17] + [-1] + [-1]i6073[17] ≥ 0∧i6073[17] + [-1] ≥ 0∧i6444[17] + [-1] ≥ 0∧i3[17] + [-2] + [-1]i6073[17] ≥ 0∧i7793[17] + [-1] ≥ 0∧i6073[17] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR9(&&(&&(&&(&&(&&(&&(&&(>(i7793[17], 0), >(+(i6073[17], 1), 0)), <(+(i6073[17], 1), i3[17])), >(i6444[17], 0)), >(i6073[17], 0)), <(i6073[17], i3[17])), >(i6075[17], 0)), >(+(+(i6073[17], 1), 1), 0)), java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))), ≥)∧[(-1)bni_63 + (-1)Bound*bni_63] + [bni_63]i6075[17] + [(-1)bni_63]i6073[17] + [bni_63]i3[17] ≥ 0∧[(-1)bso_64] ≥ 0)



    We simplified constraint (117) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (118)    (i6073[17] + [1] ≥ 0∧i6075[17] + [-1] ≥ 0∧i3[17] + [-1] + [-1]i6073[17] ≥ 0∧i6073[17] + [-1] ≥ 0∧i6444[17] + [-1] ≥ 0∧i3[17] + [-2] + [-1]i6073[17] ≥ 0∧i7793[17] + [-1] ≥ 0∧i6073[17] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR9(&&(&&(&&(&&(&&(&&(&&(>(i7793[17], 0), >(+(i6073[17], 1), 0)), <(+(i6073[17], 1), i3[17])), >(i6444[17], 0)), >(i6073[17], 0)), <(i6073[17], i3[17])), >(i6075[17], 0)), >(+(+(i6073[17], 1), 1), 0)), java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bni_63 + (-1)Bound*bni_63] + [bni_63]i6075[17] + [(-1)bni_63]i6073[17] + [bni_63]i3[17] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_64] ≥ 0)



    We simplified constraint (118) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (119)    ([2] + i6073[17] ≥ 0∧i6075[17] + [-1] ≥ 0∧i3[17] + [-2] + [-1]i6073[17] ≥ 0∧i6073[17] ≥ 0∧i6444[17] + [-1] ≥ 0∧i3[17] + [-3] + [-1]i6073[17] ≥ 0∧i7793[17] + [-1] ≥ 0∧[1] + i6073[17] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR9(&&(&&(&&(&&(&&(&&(&&(>(i7793[17], 0), >(+(i6073[17], 1), 0)), <(+(i6073[17], 1), i3[17])), >(i6444[17], 0)), >(i6073[17], 0)), <(i6073[17], i3[17])), >(i6075[17], 0)), >(+(+(i6073[17], 1), 1), 0)), java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-2)bni_63 + (-1)Bound*bni_63] + [bni_63]i6075[17] + [(-1)bni_63]i6073[17] + [bni_63]i3[17] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_64] ≥ 0)



    We simplified constraint (119) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (120)    ([2] + i6073[17] ≥ 0∧i6075[17] ≥ 0∧i3[17] + [-2] + [-1]i6073[17] ≥ 0∧i6073[17] ≥ 0∧i6444[17] + [-1] ≥ 0∧i3[17] + [-3] + [-1]i6073[17] ≥ 0∧i7793[17] + [-1] ≥ 0∧[1] + i6073[17] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR9(&&(&&(&&(&&(&&(&&(&&(>(i7793[17], 0), >(+(i6073[17], 1), 0)), <(+(i6073[17], 1), i3[17])), >(i6444[17], 0)), >(i6073[17], 0)), <(i6073[17], i3[17])), >(i6075[17], 0)), >(+(+(i6073[17], 1), 1), 0)), java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_63 + (-1)bni_63] + [bni_63]i6075[17] + [(-1)bni_63]i6073[17] + [bni_63]i3[17] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_64] ≥ 0)



    We simplified constraint (120) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (121)    ([2] + i6073[17] ≥ 0∧i6075[17] ≥ 0∧i3[17] ≥ 0∧i6073[17] ≥ 0∧i6444[17] + [-1] ≥ 0∧[-1] + i3[17] ≥ 0∧i7793[17] + [-1] ≥ 0∧[1] + i6073[17] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR9(&&(&&(&&(&&(&&(&&(&&(>(i7793[17], 0), >(+(i6073[17], 1), 0)), <(+(i6073[17], 1), i3[17])), >(i6444[17], 0)), >(i6073[17], 0)), <(i6073[17], i3[17])), >(i6075[17], 0)), >(+(+(i6073[17], 1), 1), 0)), java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_63 + bni_63] + [bni_63]i6075[17] + [bni_63]i3[17] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_64] ≥ 0)



    We simplified constraint (121) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (122)    ([2] + i6073[17] ≥ 0∧i6075[17] ≥ 0∧[1] + i3[17] ≥ 0∧i6073[17] ≥ 0∧i6444[17] + [-1] ≥ 0∧i3[17] ≥ 0∧i7793[17] + [-1] ≥ 0∧[1] + i6073[17] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR9(&&(&&(&&(&&(&&(&&(&&(>(i7793[17], 0), >(+(i6073[17], 1), 0)), <(+(i6073[17], 1), i3[17])), >(i6444[17], 0)), >(i6073[17], 0)), <(i6073[17], i3[17])), >(i6075[17], 0)), >(+(+(i6073[17], 1), 1), 0)), java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_63 + (2)bni_63] + [bni_63]i6075[17] + [bni_63]i3[17] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_64] ≥ 0)



    We simplified constraint (122) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (123)    ([2] + i6073[17] ≥ 0∧i6075[17] ≥ 0∧[1] + i3[17] ≥ 0∧i6073[17] ≥ 0∧i6444[17] ≥ 0∧i3[17] ≥ 0∧i7793[17] + [-1] ≥ 0∧[1] + i6073[17] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR9(&&(&&(&&(&&(&&(&&(&&(>(i7793[17], 0), >(+(i6073[17], 1), 0)), <(+(i6073[17], 1), i3[17])), >(i6444[17], 0)), >(i6073[17], 0)), <(i6073[17], i3[17])), >(i6075[17], 0)), >(+(+(i6073[17], 1), 1), 0)), java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_63 + (2)bni_63] + [bni_63]i6075[17] + [bni_63]i3[17] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_64] ≥ 0)



    We simplified constraint (123) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (124)    ([2] + i6073[17] ≥ 0∧i6075[17] ≥ 0∧[1] + i3[17] ≥ 0∧i6073[17] ≥ 0∧i6444[17] ≥ 0∧i3[17] ≥ 0∧i7793[17] ≥ 0∧[1] + i6073[17] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR9(&&(&&(&&(&&(&&(&&(&&(>(i7793[17], 0), >(+(i6073[17], 1), 0)), <(+(i6073[17], 1), i3[17])), >(i6444[17], 0)), >(i6073[17], 0)), <(i6073[17], i3[17])), >(i6075[17], 0)), >(+(+(i6073[17], 1), 1), 0)), java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_63 + (2)bni_63] + [bni_63]i6075[17] + [bni_63]i3[17] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_64] ≥ 0)







For Pair COND_LOAD23142ARR9(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → INC23250(java.lang.Object(ARRAY(i3, a43225data)), +(+(i6073, 1), 1), i6075) the following chains were created:
  • We consider the chain COND_LOAD23142ARR9(TRUE, java.lang.Object(ARRAY(i3[18], a43225data[18])), i6073[18], i6075[18], java.lang.Object(java.lang.String(i7793[18], i7574[18], i7576[18], a48595[18])), java.lang.Object(java.lang.String(i6444[18], i6342[18], i6344[18], a44494[18]))) → INC23250(java.lang.Object(ARRAY(i3[18], a43225data[18])), +(+(i6073[18], 1), 1), i6075[18]) which results in the following constraint:

    (125)    (COND_LOAD23142ARR9(TRUE, java.lang.Object(ARRAY(i3[18], a43225data[18])), i6073[18], i6075[18], java.lang.Object(java.lang.String(i7793[18], i7574[18], i7576[18], a48595[18])), java.lang.Object(java.lang.String(i6444[18], i6342[18], i6344[18], a44494[18])))≥NonInfC∧COND_LOAD23142ARR9(TRUE, java.lang.Object(ARRAY(i3[18], a43225data[18])), i6073[18], i6075[18], java.lang.Object(java.lang.String(i7793[18], i7574[18], i7576[18], a48595[18])), java.lang.Object(java.lang.String(i6444[18], i6342[18], i6344[18], a44494[18])))≥INC23250(java.lang.Object(ARRAY(i3[18], a43225data[18])), +(+(i6073[18], 1), 1), i6075[18])∧(UIncreasing(INC23250(java.lang.Object(ARRAY(i3[18], a43225data[18])), +(+(i6073[18], 1), 1), i6075[18])), ≥))



    We simplified constraint (125) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (126)    ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[18], a43225data[18])), +(+(i6073[18], 1), 1), i6075[18])), ≥)∧[2 + (-1)bso_66] ≥ 0)



    We simplified constraint (126) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (127)    ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[18], a43225data[18])), +(+(i6073[18], 1), 1), i6075[18])), ≥)∧[2 + (-1)bso_66] ≥ 0)



    We simplified constraint (127) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (128)    ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[18], a43225data[18])), +(+(i6073[18], 1), 1), i6075[18])), ≥)∧[2 + (-1)bso_66] ≥ 0)



    We simplified constraint (128) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (129)    ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[18], a43225data[18])), +(+(i6073[18], 1), 1), i6075[18])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_66] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • LOAD23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → LOAD23142ARR3(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075)
    • ((UIncreasing(LOAD23142ARR3(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_30] ≥ 0)

  • LOAD23142ARR3(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → COND_LOAD23142ARR3(&&(&&(&&(&&(&&(>(+(i6073, 1), 0), <(+(i6073, 1), i3)), >(i6073, 0)), <(i6073, i3)), >(i6075, 0)), >(+(+(i6073, 1), 1), 0)), java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075)
    • ([2] + i6073[1] ≥ 0∧i6075[1] ≥ 0∧[1] + i3[1] ≥ 0∧i6073[1] ≥ 0∧[1] + i6073[1] ≥ 0∧i3[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR3(&&(&&(&&(&&(&&(>(+(i6073[1], 1), 0), <(+(i6073[1], 1), i3[1])), >(i6073[1], 0)), <(i6073[1], i3[1])), >(i6075[1], 0)), >(+(+(i6073[1], 1), 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1])), ≥)∧0 = 0∧[(-1)Bound*bni_31 + (2)bni_31] + [bni_31]i6075[1] + [bni_31]i3[1] ≥ 0∧0 = 0∧[(-1)bso_32] ≥ 0)

  • COND_LOAD23142ARR3(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → NEW26117(java.lang.Object(ARRAY(i3, a43225data)), +(+(i6073, 1), 1), i6075)
    • ((UIncreasing(NEW26117(java.lang.Object(ARRAY(i3[2], a43225data[2])), +(+(i6073[2], 1), 1), i6075[2])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_34] ≥ 0)

  • INC23250(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → LOAD23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, +(i6075, -1))
    • ((UIncreasing(LOAD23142(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], +(i6075[3], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_36] ≥ 0)

  • LOAD23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → COND_LOAD23142(>(i6075, 0), java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075)
    • (i6075[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])), ≥)∧0 = 0∧[bni_37] = 0∧[(-1)bni_37] = 0∧[(-1)Bound*bni_37] + [bni_37]i6075[4] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_38] ≥ 0)

  • COND_LOAD23142(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → LOAD23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, +(i6075, -1))
    • ((UIncreasing(LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], +(i6075[5], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_40] ≥ 0)

  • NEW26117(java.lang.Object(ARRAY(i3, a43225data)), i6885, i6075) → INC23250(java.lang.Object(ARRAY(i3, a43225data)), i6885, i6075)
    • ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_42] ≥ 0)

  • LOAD23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → LOAD23142ARR4(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075)
    • ((UIncreasing(LOAD23142ARR4(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_44] ≥ 0)

  • LOAD23142ARR4(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → COND_LOAD23142ARR4(&&(&&(&&(&&(&&(>(+(i6073, 1), 0), <(+(i6073, 1), i3)), >(i6073, 0)), <(i6073, i3)), >(i6075, 0)), >(+(+(i6073, 1), 1), 0)), java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075)
    • ([2] + i6073[8] ≥ 0∧i6075[8] ≥ 0∧[1] + i3[8] ≥ 0∧i6073[8] ≥ 0∧[1] + i6073[8] ≥ 0∧i3[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR4(&&(&&(&&(&&(&&(>(+(i6073[8], 1), 0), <(+(i6073[8], 1), i3[8])), >(i6073[8], 0)), <(i6073[8], i3[8])), >(i6075[8], 0)), >(+(+(i6073[8], 1), 1), 0)), java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8])), ≥)∧0 = 0∧[(-1)Bound*bni_45 + (2)bni_45] + [bni_45]i6075[8] + [bni_45]i3[8] ≥ 0∧0 = 0∧[(-1)bso_46] ≥ 0)

  • COND_LOAD23142ARR4(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → INC23250(java.lang.Object(ARRAY(i3, a43225data)), +(+(i6073, 1), 1), i6075)
    • ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[9], a43225data[9])), +(+(i6073[9], 1), 1), i6075[9])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_48] ≥ 0)

  • LOAD23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → LOAD23142ARR5(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)))
    • ((UIncreasing(LOAD23142ARR5(java.lang.Object(ARRAY(i3[10], a43225data[10])), i6073[10], i6075[10], java.lang.Object(java.lang.String(i7267[10], i7109[10], i7111[10], a47215[10])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_50] ≥ 0)

  • LOAD23142ARR5(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215))) → COND_LOAD23142ARR5(&&(&&(&&(&&(&&(&&(>(i7267, 0), >(+(i6073, 1), 0)), <(+(i6073, 1), i3)), >(i6073, 0)), <(i6073, i3)), >(i6075, 0)), >(+(+(i6073, 1), 1), 0)), java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215)))
    • ([2] + i6073[11] ≥ 0∧i6075[11] ≥ 0∧[1] + i3[11] ≥ 0∧i6073[11] ≥ 0∧i3[11] ≥ 0∧i7267[11] ≥ 0∧[1] + i6073[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR5(&&(&&(&&(&&(&&(&&(>(i7267[11], 0), >(+(i6073[11], 1), 0)), <(+(i6073[11], 1), i3[11])), >(i6073[11], 0)), <(i6073[11], i3[11])), >(i6075[11], 0)), >(+(+(i6073[11], 1), 1), 0)), java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_51 + (2)bni_51] + [bni_51]i6075[11] + [bni_51]i3[11] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_52] ≥ 0)

  • COND_LOAD23142ARR5(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7267, i7109, i7111, a47215))) → INC23250(java.lang.Object(ARRAY(i3, a43225data)), +(+(i6073, 1), 1), i6075)
    • ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[12], a43225data[12])), +(+(i6073[12], 1), 1), i6075[12])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_54] ≥ 0)

  • LOAD23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → LOAD23142ARR7(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
    • ((UIncreasing(LOAD23142ARR7(java.lang.Object(ARRAY(i3[13], a43225data[13])), i6073[13], i6075[13], java.lang.Object(java.lang.String(i6444[13], i6342[13], i6344[13], a44494[13])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_56] ≥ 0)

  • LOAD23142ARR7(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → COND_LOAD23142ARR7(&&(&&(&&(&&(&&(&&(>(+(i6073, 1), 0), <(+(i6073, 1), i3)), >(i6444, 0)), >(i6073, 0)), <(i6073, i3)), >(i6075, 0)), >(+(+(i6073, 1), 1), 0)), java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
    • ([2] + i6073[14] ≥ 0∧i6075[14] ≥ 0∧[1] + i3[14] ≥ 0∧i6073[14] ≥ 0∧i6444[14] ≥ 0∧[1] + i6073[14] ≥ 0∧i3[14] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR7(&&(&&(&&(&&(&&(&&(>(+(i6073[14], 1), 0), <(+(i6073[14], 1), i3[14])), >(i6444[14], 0)), >(i6073[14], 0)), <(i6073[14], i3[14])), >(i6075[14], 0)), >(+(+(i6073[14], 1), 1), 0)), java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_57 + (2)bni_57] + [bni_57]i6075[14] + [bni_57]i3[14] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_58] ≥ 0)

  • COND_LOAD23142ARR7(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → INC23250(java.lang.Object(ARRAY(i3, a43225data)), +(+(i6073, 1), 1), i6075)
    • ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[15], a43225data[15])), +(+(i6073[15], 1), 1), i6075[15])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_60] ≥ 0)

  • LOAD23142(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075) → LOAD23142ARR9(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
    • ((UIncreasing(LOAD23142ARR9(java.lang.Object(ARRAY(i3[16], a43225data[16])), i6073[16], i6075[16], java.lang.Object(java.lang.String(i7793[16], i7574[16], i7576[16], a48595[16])), java.lang.Object(java.lang.String(i6444[16], i6342[16], i6344[16], a44494[16])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_62] ≥ 0)

  • LOAD23142ARR9(java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → COND_LOAD23142ARR9(&&(&&(&&(&&(&&(&&(&&(>(i7793, 0), >(+(i6073, 1), 0)), <(+(i6073, 1), i3)), >(i6444, 0)), >(i6073, 0)), <(i6073, i3)), >(i6075, 0)), >(+(+(i6073, 1), 1), 0)), java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494)))
    • ([2] + i6073[17] ≥ 0∧i6075[17] ≥ 0∧[1] + i3[17] ≥ 0∧i6073[17] ≥ 0∧i6444[17] ≥ 0∧i3[17] ≥ 0∧i7793[17] ≥ 0∧[1] + i6073[17] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142ARR9(&&(&&(&&(&&(&&(&&(&&(>(i7793[17], 0), >(+(i6073[17], 1), 0)), <(+(i6073[17], 1), i3[17])), >(i6444[17], 0)), >(i6073[17], 0)), <(i6073[17], i3[17])), >(i6075[17], 0)), >(+(+(i6073[17], 1), 1), 0)), java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_63 + (2)bni_63] + [bni_63]i6075[17] + [bni_63]i3[17] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_64] ≥ 0)

  • COND_LOAD23142ARR9(TRUE, java.lang.Object(ARRAY(i3, a43225data)), i6073, i6075, java.lang.Object(java.lang.String(i7793, i7574, i7576, a48595)), java.lang.Object(java.lang.String(i6444, i6342, i6344, a44494))) → INC23250(java.lang.Object(ARRAY(i3, a43225data)), +(+(i6073, 1), 1), i6075)
    • ((UIncreasing(INC23250(java.lang.Object(ARRAY(i3[18], a43225data[18])), +(+(i6073[18], 1), 1), i6075[18])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_66] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(LOAD23142(x1, x2, x3)) = [-1] + x3 + [-1]x1 + [-1]x2   
POL(java.lang.Object(x1)) = x1   
POL(ARRAY(x1, x2)) = [-1]x1   
POL(LOAD23142ARR3(x1, x2, x3)) = [-1] + x3 + [-1]x1 + [-1]x2   
POL(COND_LOAD23142ARR3(x1, x2, x3, x4)) = [-1] + x4 + [-1]x2 + [-1]x3   
POL(&&(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   
POL(0) = 0   
POL(<(x1, x2)) = [-1]   
POL(NEW26117(x1, x2, x3)) = [-1] + [-1]x2 + x3 + [-1]x1   
POL(INC23250(x1, x2, x3)) = [-1] + [-1]x1 + x3 + [-1]x2   
POL(-1) = [-1]   
POL(COND_LOAD23142(x1, x2, x3, x4)) = [-1] + x4 + [-1]x2 + [-1]x3   
POL(LOAD23142ARR4(x1, x2, x3)) = [-1] + x3 + [-1]x2 + [-1]x1   
POL(COND_LOAD23142ARR4(x1, x2, x3, x4)) = [-1] + x4 + [-1]x3 + [-1]x2   
POL(LOAD23142ARR5(x1, x2, x3, x4)) = [-1] + x3 + [-1]x2 + [-1]x1   
POL(java.lang.String(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2 + [-1]x1   
POL(COND_LOAD23142ARR5(x1, x2, x3, x4, x5)) = [-1] + x4 + [-1]x3 + [-1]x2   
POL(LOAD23142ARR7(x1, x2, x3, x4)) = [-1] + x3 + [-1]x2 + [-1]x1   
POL(COND_LOAD23142ARR7(x1, x2, x3, x4, x5)) = [-1] + x4 + [-1]x3 + [-1]x2   
POL(LOAD23142ARR9(x1, x2, x3, x4, x5)) = [-1] + x3 + [-1]x2 + [-1]x1   
POL(COND_LOAD23142ARR9(x1, x2, x3, x4, x5, x6)) = [-1] + x4 + [-1]x3 + [-1]x2   

The following pairs are in P>:

COND_LOAD23142ARR3(TRUE, java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2], i6075[2]) → NEW26117(java.lang.Object(ARRAY(i3[2], a43225data[2])), +(+(i6073[2], 1), 1), i6075[2])
INC23250(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], i6075[3]) → LOAD23142(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], +(i6075[3], -1))
COND_LOAD23142(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], i6075[5]) → LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], +(i6075[5], -1))
COND_LOAD23142ARR4(TRUE, java.lang.Object(ARRAY(i3[9], a43225data[9])), i6073[9], i6075[9]) → INC23250(java.lang.Object(ARRAY(i3[9], a43225data[9])), +(+(i6073[9], 1), 1), i6075[9])
COND_LOAD23142ARR5(TRUE, java.lang.Object(ARRAY(i3[12], a43225data[12])), i6073[12], i6075[12], java.lang.Object(java.lang.String(i7267[12], i7109[12], i7111[12], a47215[12]))) → INC23250(java.lang.Object(ARRAY(i3[12], a43225data[12])), +(+(i6073[12], 1), 1), i6075[12])
COND_LOAD23142ARR7(TRUE, java.lang.Object(ARRAY(i3[15], a43225data[15])), i6073[15], i6075[15], java.lang.Object(java.lang.String(i6444[15], i6342[15], i6344[15], a44494[15]))) → INC23250(java.lang.Object(ARRAY(i3[15], a43225data[15])), +(+(i6073[15], 1), 1), i6075[15])
COND_LOAD23142ARR9(TRUE, java.lang.Object(ARRAY(i3[18], a43225data[18])), i6073[18], i6075[18], java.lang.Object(java.lang.String(i7793[18], i7574[18], i7576[18], a48595[18])), java.lang.Object(java.lang.String(i6444[18], i6342[18], i6344[18], a44494[18]))) → INC23250(java.lang.Object(ARRAY(i3[18], a43225data[18])), +(+(i6073[18], 1), 1), i6075[18])

The following pairs are in Pbound:

LOAD23142ARR3(java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1]) → COND_LOAD23142ARR3(&&(&&(&&(&&(&&(>(+(i6073[1], 1), 0), <(+(i6073[1], 1), i3[1])), >(i6073[1], 0)), <(i6073[1], i3[1])), >(i6075[1], 0)), >(+(+(i6073[1], 1), 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1])
LOAD23142ARR4(java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8]) → COND_LOAD23142ARR4(&&(&&(&&(&&(&&(>(+(i6073[8], 1), 0), <(+(i6073[8], 1), i3[8])), >(i6073[8], 0)), <(i6073[8], i3[8])), >(i6075[8], 0)), >(+(+(i6073[8], 1), 1), 0)), java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8])
LOAD23142ARR5(java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11]))) → COND_LOAD23142ARR5(&&(&&(&&(&&(&&(&&(>(i7267[11], 0), >(+(i6073[11], 1), 0)), <(+(i6073[11], 1), i3[11])), >(i6073[11], 0)), <(i6073[11], i3[11])), >(i6075[11], 0)), >(+(+(i6073[11], 1), 1), 0)), java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))
LOAD23142ARR7(java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14]))) → COND_LOAD23142ARR7(&&(&&(&&(&&(&&(&&(>(+(i6073[14], 1), 0), <(+(i6073[14], 1), i3[14])), >(i6444[14], 0)), >(i6073[14], 0)), <(i6073[14], i3[14])), >(i6075[14], 0)), >(+(+(i6073[14], 1), 1), 0)), java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))
LOAD23142ARR9(java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17]))) → COND_LOAD23142ARR9(&&(&&(&&(&&(&&(&&(&&(>(i7793[17], 0), >(+(i6073[17], 1), 0)), <(+(i6073[17], 1), i3[17])), >(i6444[17], 0)), >(i6073[17], 0)), <(i6073[17], i3[17])), >(i6075[17], 0)), >(+(+(i6073[17], 1), 1), 0)), java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))

The following pairs are in P:

LOAD23142(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0]) → LOAD23142ARR3(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0])
LOAD23142ARR3(java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1]) → COND_LOAD23142ARR3(&&(&&(&&(&&(&&(>(+(i6073[1], 1), 0), <(+(i6073[1], 1), i3[1])), >(i6073[1], 0)), <(i6073[1], i3[1])), >(i6075[1], 0)), >(+(+(i6073[1], 1), 1), 0)), java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1])
LOAD23142(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4]) → COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])
NEW26117(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6]) → INC23250(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6])
LOAD23142(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7]) → LOAD23142ARR4(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7])
LOAD23142ARR4(java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8]) → COND_LOAD23142ARR4(&&(&&(&&(&&(&&(>(+(i6073[8], 1), 0), <(+(i6073[8], 1), i3[8])), >(i6073[8], 0)), <(i6073[8], i3[8])), >(i6075[8], 0)), >(+(+(i6073[8], 1), 1), 0)), java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8])
LOAD23142(java.lang.Object(ARRAY(i3[10], a43225data[10])), i6073[10], i6075[10]) → LOAD23142ARR5(java.lang.Object(ARRAY(i3[10], a43225data[10])), i6073[10], i6075[10], java.lang.Object(java.lang.String(i7267[10], i7109[10], i7111[10], a47215[10])))
LOAD23142ARR5(java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11]))) → COND_LOAD23142ARR5(&&(&&(&&(&&(&&(&&(>(i7267[11], 0), >(+(i6073[11], 1), 0)), <(+(i6073[11], 1), i3[11])), >(i6073[11], 0)), <(i6073[11], i3[11])), >(i6075[11], 0)), >(+(+(i6073[11], 1), 1), 0)), java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))
LOAD23142(java.lang.Object(ARRAY(i3[13], a43225data[13])), i6073[13], i6075[13]) → LOAD23142ARR7(java.lang.Object(ARRAY(i3[13], a43225data[13])), i6073[13], i6075[13], java.lang.Object(java.lang.String(i6444[13], i6342[13], i6344[13], a44494[13])))
LOAD23142ARR7(java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14]))) → COND_LOAD23142ARR7(&&(&&(&&(&&(&&(&&(>(+(i6073[14], 1), 0), <(+(i6073[14], 1), i3[14])), >(i6444[14], 0)), >(i6073[14], 0)), <(i6073[14], i3[14])), >(i6075[14], 0)), >(+(+(i6073[14], 1), 1), 0)), java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))
LOAD23142(java.lang.Object(ARRAY(i3[16], a43225data[16])), i6073[16], i6075[16]) → LOAD23142ARR9(java.lang.Object(ARRAY(i3[16], a43225data[16])), i6073[16], i6075[16], java.lang.Object(java.lang.String(i7793[16], i7574[16], i7576[16], a48595[16])), java.lang.Object(java.lang.String(i6444[16], i6342[16], i6344[16], a44494[16])))
LOAD23142ARR9(java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17]))) → COND_LOAD23142ARR9(&&(&&(&&(&&(&&(&&(&&(>(i7793[17], 0), >(+(i6073[17], 1), 0)), <(+(i6073[17], 1), i3[17])), >(i6444[17], 0)), >(i6073[17], 0)), <(i6073[17], i3[17])), >(i6075[17], 0)), >(+(+(i6073[17], 1), 1), 0)), java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))

There are no usable rules.

(34) Complex Obligation (AND)

(35) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD23142(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0]) → LOAD23142ARR3(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0])
(1): LOAD23142ARR3(java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1]) → COND_LOAD23142ARR3(i6073[1] + 1 > 0 && i6073[1] + 1 < i3[1] && i6073[1] > 0 && i6073[1] < i3[1] && i6075[1] > 0 && i6073[1] + 1 + 1 > 0, java.lang.Object(ARRAY(i3[1], a43225data[1])), i6073[1], i6075[1])
(4): LOAD23142(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4]) → COND_LOAD23142(i6075[4] > 0, java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])
(6): NEW26117(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6]) → INC23250(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6])
(7): LOAD23142(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7]) → LOAD23142ARR4(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7])
(8): LOAD23142ARR4(java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8]) → COND_LOAD23142ARR4(i6073[8] + 1 > 0 && i6073[8] + 1 < i3[8] && i6073[8] > 0 && i6073[8] < i3[8] && i6075[8] > 0 && i6073[8] + 1 + 1 > 0, java.lang.Object(ARRAY(i3[8], a43225data[8])), i6073[8], i6075[8])
(10): LOAD23142(java.lang.Object(ARRAY(i3[10], a43225data[10])), i6073[10], i6075[10]) → LOAD23142ARR5(java.lang.Object(ARRAY(i3[10], a43225data[10])), i6073[10], i6075[10], java.lang.Object(java.lang.String(i7267[10], i7109[10], i7111[10], a47215[10])))
(11): LOAD23142ARR5(java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11]))) → COND_LOAD23142ARR5(i7267[11] > 0 && i6073[11] + 1 > 0 && i6073[11] + 1 < i3[11] && i6073[11] > 0 && i6073[11] < i3[11] && i6075[11] > 0 && i6073[11] + 1 + 1 > 0, java.lang.Object(ARRAY(i3[11], a43225data[11])), i6073[11], i6075[11], java.lang.Object(java.lang.String(i7267[11], i7109[11], i7111[11], a47215[11])))
(13): LOAD23142(java.lang.Object(ARRAY(i3[13], a43225data[13])), i6073[13], i6075[13]) → LOAD23142ARR7(java.lang.Object(ARRAY(i3[13], a43225data[13])), i6073[13], i6075[13], java.lang.Object(java.lang.String(i6444[13], i6342[13], i6344[13], a44494[13])))
(14): LOAD23142ARR7(java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14]))) → COND_LOAD23142ARR7(i6073[14] + 1 > 0 && i6073[14] + 1 < i3[14] && i6444[14] > 0 && i6073[14] > 0 && i6073[14] < i3[14] && i6075[14] > 0 && i6073[14] + 1 + 1 > 0, java.lang.Object(ARRAY(i3[14], a43225data[14])), i6073[14], i6075[14], java.lang.Object(java.lang.String(i6444[14], i6342[14], i6344[14], a44494[14])))
(16): LOAD23142(java.lang.Object(ARRAY(i3[16], a43225data[16])), i6073[16], i6075[16]) → LOAD23142ARR9(java.lang.Object(ARRAY(i3[16], a43225data[16])), i6073[16], i6075[16], java.lang.Object(java.lang.String(i7793[16], i7574[16], i7576[16], a48595[16])), java.lang.Object(java.lang.String(i6444[16], i6342[16], i6344[16], a44494[16])))
(17): LOAD23142ARR9(java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17]))) → COND_LOAD23142ARR9(i7793[17] > 0 && i6073[17] + 1 > 0 && i6073[17] + 1 < i3[17] && i6444[17] > 0 && i6073[17] > 0 && i6073[17] < i3[17] && i6075[17] > 0 && i6073[17] + 1 + 1 > 0, java.lang.Object(ARRAY(i3[17], a43225data[17])), i6073[17], i6075[17], java.lang.Object(java.lang.String(i7793[17], i7574[17], i7576[17], a48595[17])), java.lang.Object(java.lang.String(i6444[17], i6342[17], i6344[17], a44494[17])))

(0) -> (1), if ((i6073[0]* i6073[1])∧((i3[0]* i3[1])∧(a43225data[0]* a43225data[1]))∧(i6075[0]* i6075[1]))


(7) -> (8), if (((i3[7]* i3[8])∧(a43225data[7]* a43225data[8]))∧(i6073[7]* i6073[8])∧(i6075[7]* i6075[8]))


(10) -> (11), if (((i3[10]* i3[11])∧(a43225data[10]* a43225data[11]))∧((i7267[10]* i7267[11])∧(i7109[10]* i7109[11])∧(i7111[10]* i7111[11])∧(a47215[10]* a47215[11]))∧(i6075[10]* i6075[11])∧(i6073[10]* i6073[11]))


(13) -> (14), if (((i6444[13]* i6444[14])∧(i6342[13]* i6342[14])∧(i6344[13]* i6344[14])∧(a44494[13]* a44494[14]))∧(i6073[13]* i6073[14])∧(i6075[13]* i6075[14])∧((i3[13]* i3[14])∧(a43225data[13]* a43225data[14])))


(16) -> (17), if (((i7793[16]* i7793[17])∧(i7574[16]* i7574[17])∧(i7576[16]* i7576[17])∧(a48595[16]* a48595[17]))∧((i3[16]* i3[17])∧(a43225data[16]* a43225data[17]))∧(i6075[16]* i6075[17])∧((i6444[16]* i6444[17])∧(i6342[16]* i6342[17])∧(i6344[16]* i6344[17])∧(a44494[16]* a44494[17]))∧(i6073[16]* i6073[17]))



The set Q consists of the following terms:
Load23142(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR3(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
Inc23250(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
New26117(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR4(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142ARR4(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR5(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load23142ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Load23142ARR7(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load23142ARR7(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Load23142ARR9(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)), java.lang.Object(java.lang.String(x8, x9, x10, x11)))
Cond_Load23142ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)), java.lang.Object(java.lang.String(x8, x9, x10, x11)))

(36) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 12 less nodes.

(37) TRUE

(38) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD23142(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0]) → LOAD23142ARR3(java.lang.Object(ARRAY(i3[0], a43225data[0])), i6073[0], i6075[0])
(2): COND_LOAD23142ARR3(TRUE, java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2], i6075[2]) → NEW26117(java.lang.Object(ARRAY(i3[2], a43225data[2])), i6073[2] + 1 + 1, i6075[2])
(3): INC23250(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], i6075[3]) → LOAD23142(java.lang.Object(ARRAY(i3[3], a43225data[3])), i6073[3], i6075[3] + -1)
(4): LOAD23142(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4]) → COND_LOAD23142(i6075[4] > 0, java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])
(5): COND_LOAD23142(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], i6075[5]) → LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], i6075[5] + -1)
(6): NEW26117(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6]) → INC23250(java.lang.Object(ARRAY(i3[6], a43225data[6])), i6885[6], i6075[6])
(7): LOAD23142(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7]) → LOAD23142ARR4(java.lang.Object(ARRAY(i3[7], a43225data[7])), i6073[7], i6075[7])
(9): COND_LOAD23142ARR4(TRUE, java.lang.Object(ARRAY(i3[9], a43225data[9])), i6073[9], i6075[9]) → INC23250(java.lang.Object(ARRAY(i3[9], a43225data[9])), i6073[9] + 1 + 1, i6075[9])
(10): LOAD23142(java.lang.Object(ARRAY(i3[10], a43225data[10])), i6073[10], i6075[10]) → LOAD23142ARR5(java.lang.Object(ARRAY(i3[10], a43225data[10])), i6073[10], i6075[10], java.lang.Object(java.lang.String(i7267[10], i7109[10], i7111[10], a47215[10])))
(12): COND_LOAD23142ARR5(TRUE, java.lang.Object(ARRAY(i3[12], a43225data[12])), i6073[12], i6075[12], java.lang.Object(java.lang.String(i7267[12], i7109[12], i7111[12], a47215[12]))) → INC23250(java.lang.Object(ARRAY(i3[12], a43225data[12])), i6073[12] + 1 + 1, i6075[12])
(13): LOAD23142(java.lang.Object(ARRAY(i3[13], a43225data[13])), i6073[13], i6075[13]) → LOAD23142ARR7(java.lang.Object(ARRAY(i3[13], a43225data[13])), i6073[13], i6075[13], java.lang.Object(java.lang.String(i6444[13], i6342[13], i6344[13], a44494[13])))
(15): COND_LOAD23142ARR7(TRUE, java.lang.Object(ARRAY(i3[15], a43225data[15])), i6073[15], i6075[15], java.lang.Object(java.lang.String(i6444[15], i6342[15], i6344[15], a44494[15]))) → INC23250(java.lang.Object(ARRAY(i3[15], a43225data[15])), i6073[15] + 1 + 1, i6075[15])
(16): LOAD23142(java.lang.Object(ARRAY(i3[16], a43225data[16])), i6073[16], i6075[16]) → LOAD23142ARR9(java.lang.Object(ARRAY(i3[16], a43225data[16])), i6073[16], i6075[16], java.lang.Object(java.lang.String(i7793[16], i7574[16], i7576[16], a48595[16])), java.lang.Object(java.lang.String(i6444[16], i6342[16], i6344[16], a44494[16])))
(18): COND_LOAD23142ARR9(TRUE, java.lang.Object(ARRAY(i3[18], a43225data[18])), i6073[18], i6075[18], java.lang.Object(java.lang.String(i7793[18], i7574[18], i7576[18], a48595[18])), java.lang.Object(java.lang.String(i6444[18], i6342[18], i6344[18], a44494[18]))) → INC23250(java.lang.Object(ARRAY(i3[18], a43225data[18])), i6073[18] + 1 + 1, i6075[18])

(3) -> (0), if (((i3[3]* i3[0])∧(a43225data[3]* a43225data[0]))∧(i6073[3]* i6073[0])∧(i6075[3] + -1* i6075[0]))


(5) -> (0), if ((i6073[5]* i6073[0])∧((i3[5]* i3[0])∧(a43225data[5]* a43225data[0]))∧(i6075[5] + -1* i6075[0]))


(6) -> (3), if (((i3[6]* i3[3])∧(a43225data[6]* a43225data[3]))∧(i6885[6]* i6073[3])∧(i6075[6]* i6075[3]))


(9) -> (3), if ((i6073[9] + 1 + 1* i6073[3])∧(i6075[9]* i6075[3])∧((i3[9]* i3[3])∧(a43225data[9]* a43225data[3])))


(12) -> (3), if (((i3[12]* i3[3])∧(a43225data[12]* a43225data[3]))∧(i6073[12] + 1 + 1* i6073[3])∧(i6075[12]* i6075[3]))


(15) -> (3), if ((i6073[15] + 1 + 1* i6073[3])∧((i3[15]* i3[3])∧(a43225data[15]* a43225data[3]))∧(i6075[15]* i6075[3]))


(18) -> (3), if ((i6073[18] + 1 + 1* i6073[3])∧((i3[18]* i3[3])∧(a43225data[18]* a43225data[3]))∧(i6075[18]* i6075[3]))


(3) -> (4), if ((i6075[3] + -1* i6075[4])∧((i3[3]* i3[4])∧(a43225data[3]* a43225data[4]))∧(i6073[3]* i6073[4]))


(5) -> (4), if (((i3[5]* i3[4])∧(a43225data[5]* a43225data[4]))∧(i6073[5]* i6073[4])∧(i6075[5] + -1* i6075[4]))


(4) -> (5), if ((i6073[4]* i6073[5])∧(i6075[4] > 0* TRUE)∧(i6075[4]* i6075[5])∧((i3[4]* i3[5])∧(a43225data[4]* a43225data[5])))


(2) -> (6), if (((i3[2]* i3[6])∧(a43225data[2]* a43225data[6]))∧(i6075[2]* i6075[6])∧(i6073[2] + 1 + 1* i6885[6]))


(3) -> (7), if ((i6075[3] + -1* i6075[7])∧((i3[3]* i3[7])∧(a43225data[3]* a43225data[7]))∧(i6073[3]* i6073[7]))


(5) -> (7), if ((i6073[5]* i6073[7])∧(i6075[5] + -1* i6075[7])∧((i3[5]* i3[7])∧(a43225data[5]* a43225data[7])))


(3) -> (10), if ((i6075[3] + -1* i6075[10])∧((i3[3]* i3[10])∧(a43225data[3]* a43225data[10]))∧(i6073[3]* i6073[10]))


(5) -> (10), if (((i3[5]* i3[10])∧(a43225data[5]* a43225data[10]))∧(i6075[5] + -1* i6075[10])∧(i6073[5]* i6073[10]))


(3) -> (13), if ((i6075[3] + -1* i6075[13])∧(i6073[3]* i6073[13])∧((i3[3]* i3[13])∧(a43225data[3]* a43225data[13])))


(5) -> (13), if ((i6075[5] + -1* i6075[13])∧(i6073[5]* i6073[13])∧((i3[5]* i3[13])∧(a43225data[5]* a43225data[13])))


(3) -> (16), if ((i6075[3] + -1* i6075[16])∧((i3[3]* i3[16])∧(a43225data[3]* a43225data[16]))∧(i6073[3]* i6073[16]))


(5) -> (16), if ((i6073[5]* i6073[16])∧(i6075[5] + -1* i6075[16])∧((i3[5]* i3[16])∧(a43225data[5]* a43225data[16])))



The set Q consists of the following terms:
Load23142(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR3(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
Inc23250(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
New26117(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR4(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142ARR4(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR5(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load23142ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Load23142ARR7(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load23142ARR7(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Load23142ARR9(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)), java.lang.Object(java.lang.String(x8, x9, x10, x11)))
Cond_Load23142ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)), java.lang.Object(java.lang.String(x8, x9, x10, x11)))

(39) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 12 less nodes.

(40) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(5): COND_LOAD23142(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], i6075[5]) → LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], i6075[5] + -1)
(4): LOAD23142(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4]) → COND_LOAD23142(i6075[4] > 0, java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])

(5) -> (4), if (((i3[5]* i3[4])∧(a43225data[5]* a43225data[4]))∧(i6073[5]* i6073[4])∧(i6075[5] + -1* i6075[4]))


(4) -> (5), if ((i6073[4]* i6073[5])∧(i6075[4] > 0* TRUE)∧(i6075[4]* i6075[5])∧((i3[4]* i3[5])∧(a43225data[4]* a43225data[5])))



The set Q consists of the following terms:
Load23142(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR3(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
Inc23250(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
New26117(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR4(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142ARR4(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR5(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load23142ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Load23142ARR7(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load23142ARR7(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Load23142ARR9(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)), java.lang.Object(java.lang.String(x8, x9, x10, x11)))
Cond_Load23142ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)), java.lang.Object(java.lang.String(x8, x9, x10, x11)))

(41) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair COND_LOAD23142(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], i6075[5]) → LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], +(i6075[5], -1)) the following chains were created:
  • We consider the chain COND_LOAD23142(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], i6075[5]) → LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], +(i6075[5], -1)) which results in the following constraint:

    (1)    (COND_LOAD23142(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], i6075[5])≥NonInfC∧COND_LOAD23142(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], i6075[5])≥LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], +(i6075[5], -1))∧(UIncreasing(LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], +(i6075[5], -1))), ≥))



    We simplified constraint (1) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (2)    ((UIncreasing(LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], +(i6075[5], -1))), ≥)∧[(-1)bso_10] ≥ 0)



    We simplified constraint (2) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (3)    ((UIncreasing(LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], +(i6075[5], -1))), ≥)∧[(-1)bso_10] ≥ 0)



    We simplified constraint (3) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (4)    ((UIncreasing(LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], +(i6075[5], -1))), ≥)∧[(-1)bso_10] ≥ 0)



    We simplified constraint (4) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (5)    ((UIncreasing(LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], +(i6075[5], -1))), ≥)∧0 = 0∧[(-1)bso_10] ≥ 0)







For Pair LOAD23142(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4]) → COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4]) the following chains were created:
  • We consider the chain LOAD23142(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4]) → COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4]), COND_LOAD23142(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], i6075[5]) → LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], +(i6075[5], -1)) which results in the following constraint:

    (6)    (i6073[4]=i6073[5]>(i6075[4], 0)=TRUEi6075[4]=i6075[5]i3[4]=i3[5]a43225data[4]=a43225data[5]LOAD23142(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])≥NonInfC∧LOAD23142(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])≥COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])∧(UIncreasing(COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])), ≥))



    We simplified constraint (6) using rule (IV) which results in the following new constraint:

    (7)    (>(i6075[4], 0)=TRUELOAD23142(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])≥NonInfC∧LOAD23142(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])≥COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])∧(UIncreasing(COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])), ≥))



    We simplified constraint (7) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    (i6075[4] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])), ≥)∧[bni_11 + (-1)Bound*bni_11] + [(2)bni_11]i6075[4] ≥ 0∧[2 + (-1)bso_12] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    (i6075[4] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])), ≥)∧[bni_11 + (-1)Bound*bni_11] + [(2)bni_11]i6075[4] ≥ 0∧[2 + (-1)bso_12] ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (10)    (i6075[4] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])), ≥)∧[bni_11 + (-1)Bound*bni_11] + [(2)bni_11]i6075[4] ≥ 0∧[2 + (-1)bso_12] ≥ 0)



    We simplified constraint (10) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (11)    (i6075[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])), ≥)∧[(3)bni_11 + (-1)Bound*bni_11] + [(2)bni_11]i6075[4] ≥ 0∧[2 + (-1)bso_12] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • COND_LOAD23142(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], i6075[5]) → LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], +(i6075[5], -1))
    • ((UIncreasing(LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], +(i6075[5], -1))), ≥)∧0 = 0∧[(-1)bso_10] ≥ 0)

  • LOAD23142(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4]) → COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])
    • (i6075[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])), ≥)∧[(3)bni_11 + (-1)Bound*bni_11] + [(2)bni_11]i6075[4] ≥ 0∧[2 + (-1)bso_12] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(COND_LOAD23142(x1, x2, x3, x4)) = [-1] + [2]x4   
POL(java.lang.Object(x1)) = [-1]   
POL(ARRAY(x1, x2)) = [-1]   
POL(LOAD23142(x1, x2, x3)) = [1] + [2]x3   
POL(+(x1, x2)) = x1 + x2   
POL(-1) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(0) = 0   

The following pairs are in P>:

LOAD23142(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4]) → COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])

The following pairs are in Pbound:

LOAD23142(java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4]) → COND_LOAD23142(>(i6075[4], 0), java.lang.Object(ARRAY(i3[4], a43225data[4])), i6073[4], i6075[4])

The following pairs are in P:

COND_LOAD23142(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], i6075[5]) → LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], +(i6075[5], -1))

There are no usable rules.

(42) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(5): COND_LOAD23142(TRUE, java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], i6075[5]) → LOAD23142(java.lang.Object(ARRAY(i3[5], a43225data[5])), i6073[5], i6075[5] + -1)


The set Q consists of the following terms:
Load23142(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR3(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
Inc23250(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
New26117(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR4(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load23142ARR4(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load23142ARR5(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load23142ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Load23142ARR7(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load23142ARR7(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Load23142ARR9(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)), java.lang.Object(java.lang.String(x8, x9, x10, x11)))
Cond_Load23142ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)), java.lang.Object(java.lang.String(x8, x9, x10, x11)))

(43) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(44) TRUE